[pypy-commit] pypy better-jit-hooks-2: change DMP.descr to DMP.greenkey

alex_gaynor noreply at buildbot.pypy.org
Tue Jan 17 22:27:44 CET 2012


Author: Alex Gaynor <alex.gaynor at gmail.com>
Branch: better-jit-hooks-2
Changeset: r51424:6354270bb576
Date: 2012-01-17 15:27 -0600
http://bitbucket.org/pypy/pypy/changeset/6354270bb576/

Log:	change DMP.descr to DMP.greenkey

diff --git a/pypy/module/pypyjit/interp_resop.py b/pypy/module/pypyjit/interp_resop.py
--- a/pypy/module/pypyjit/interp_resop.py
+++ b/pypy/module/pypyjit/interp_resop.py
@@ -1,6 +1,6 @@
 
-from pypy.interpreter.typedef import TypeDef, GetSetProperty,\
-     interp_attrproperty
+from pypy.interpreter.typedef import (TypeDef, GetSetProperty,
+     interp_attrproperty, interp_attrproperty_w)
 from pypy.interpreter.baseobjspace import Wrappable
 from pypy.interpreter.gateway import unwrap_spec, interp2app, NoneNotWrapped
 from pypy.interpreter.pycode import PyCode
@@ -123,11 +123,11 @@
             jd_sd = jitdrivers_sd[op.getarg(0).getint()]
             greenkey = op.getarglist()[2:]
             repr = jd_sd.warmstate.get_location_str(greenkey)
-            w_descr = wrap_greenkey(space, jd_sd.jitdriver, greenkey, repr)
+            w_greenkey = wrap_greenkey(space, jd_sd.jitdriver, greenkey, repr)
             l_w.append(DebugMergePoint(space, jit_hooks._cast_to_gcref(op),
                                        logops.repr_of_resop(op),
                                        jd_sd.jitdriver.name,
-                                       w_descr))
+                                       w_greenkey))
         else:
             l_w.append(WrappedOp(jit_hooks._cast_to_gcref(op), ofs,
                                  logops.repr_of_resop(op)))
@@ -164,13 +164,13 @@
     return WrappedOp(jit_hooks.resop_new(num, args, llres), offset, repr)
 
 @unwrap_spec(repr=str, jd_name=str)
-def descr_new_dmp(space, w_tp, w_args, repr, jd_name, w_descr):
+def descr_new_dmp(space, w_tp, w_args, repr, jd_name, w_greenkey):
     args = [space.interp_w(WrappedBox, w_arg).llbox for w_arg in
             space.listview(w_args)]
     num = rop.DEBUG_MERGE_POINT
     return DebugMergePoint(space,
                            jit_hooks.resop_new(num, args, jit_hooks.emptyval()),
-                           repr, jd_name, w_descr)
+                           repr, jd_name, w_greenkey)
 
 class WrappedOp(Wrappable):
     """ A class representing a single ResOperation, wrapped nicely
@@ -205,22 +205,19 @@
         jit_hooks.resop_setresult(self.op, box.llbox)
 
 class DebugMergePoint(WrappedOp):
-    def __init__(self, space, op, repr_of_resop, jd_name, w_descr):
+    def __init__(self, space, op, repr_of_resop, jd_name, w_greenkey):
         WrappedOp.__init__(self, op, -1, repr_of_resop)
-        self.w_descr = w_descr
+        self.w_greenkey = w_greenkey
         self.jd_name = jd_name
 
-    def get_descr(self, space):
-        return self.w_descr
-
     def get_pycode(self, space):
         if self.jd_name == pypyjitdriver.name:
-            return space.getitem(self.w_descr, space.wrap(0))
+            return space.getitem(self.w_greenkey, space.wrap(0))
         raise OperationError(space.w_AttributeError, space.wrap("This DebugMergePoint doesn't belong to the main Python JitDriver"))
 
     def get_bytecode_no(self, space):
         if self.jd_name == pypyjitdriver.name:
-            return space.getitem(self.w_descr, space.wrap(1))
+            return space.getitem(self.w_greenkey, space.wrap(1))
         raise OperationError(space.w_AttributeError, space.wrap("This DebugMergePoint doesn't belong to the main Python JitDriver"))
 
     def get_jitdriver_name(self, space):
@@ -243,11 +240,11 @@
 DebugMergePoint.typedef = TypeDef(
     'DebugMergePoint', WrappedOp.typedef,
     __new__ = interp2app(descr_new_dmp),
-    descr = GetSetProperty(DebugMergePoint.get_descr),
+    greenkey = interp_attrproperty_w("w_greenkey", cls=DebugMergePoint),
     pycode = GetSetProperty(DebugMergePoint.get_pycode),
     bytecode_no = GetSetProperty(DebugMergePoint.get_bytecode_no),
     jitdriver_name = GetSetProperty(DebugMergePoint.get_jitdriver_name),
 )
 DebugMergePoint.acceptable_as_base_class = False
 
-                   
+
diff --git a/pypy/module/pypyjit/test/test_jit_hook.py b/pypy/module/pypyjit/test/test_jit_hook.py
--- a/pypy/module/pypyjit/test/test_jit_hook.py
+++ b/pypy/module/pypyjit/test/test_jit_hook.py
@@ -121,6 +121,7 @@
         dmp = elem[3][1]
         assert isinstance(dmp, pypyjit.DebugMergePoint)
         assert dmp.pycode is self.f.func_code
+        assert dmp.greenkey == (self.f.func_code, 0, False)
         #assert int_add.name == 'int_add'
         assert int_add.num == self.int_add_num
         self.on_compile_bridge()


More information about the pypy-commit mailing list