[pypy-commit] pypy default: add a jitdriver for space.contains, fixes issue1327
bdkearns
noreply at buildbot.pypy.org
Mon Feb 18 07:23:18 CET 2013
Author: Brian Kearns <bdkearns at gmail.com>
Branch:
Changeset: r61398:7a0d27055cb4
Date: 2013-02-18 01:14 -0500
http://bitbucket.org/pypy/pypy/changeset/7a0d27055cb4/
Log: add a jitdriver for space.contains, fixes issue1327
diff --git a/pypy/objspace/descroperation.py b/pypy/objspace/descroperation.py
--- a/pypy/objspace/descroperation.py
+++ b/pypy/objspace/descroperation.py
@@ -7,6 +7,7 @@
from rpython.tool.sourcetools import compile2, func_with_new_name
from pypy.module.__builtin__.interp_classobj import W_InstanceObject
from rpython.rlib.objectmodel import specialize
+from rpython.rlib import jit
def object_getattribute(space):
"Utility that returns the app-level descriptor object.__getattribute__."
@@ -118,6 +119,9 @@
def descr__init__(space, w_obj, __args__):
pass
+contains_jitdriver = jit.JitDriver(name='contains',
+ greens=['w_type'], reds='auto')
+
class DescrOperation(object):
_mixin_ = True
@@ -421,7 +425,9 @@
def _contains(space, w_container, w_item):
w_iter = space.iter(w_container)
+ w_type = space.type(w_iter)
while 1:
+ contains_jitdriver.jit_merge_point(w_type=w_type)
try:
w_next = space.next(w_iter)
except OperationError, e:
More information about the pypy-commit
mailing list