Author: Maciej Fijalkowski <[email protected]>
Branch: result-in-resops
Changeset: r57602:1d5bb84dff24
Date: 2012-09-26 11:30 +0200
http://bitbucket.org/pypy/pypy/changeset/1d5bb84dff24/

Log:    port some tests. now officially at 2/3 of the file

diff --git a/pypy/jit/metainterp/optimizeopt/__init__.py 
b/pypy/jit/metainterp/optimizeopt/__init__.py
--- a/pypy/jit/metainterp/optimizeopt/__init__.py
+++ b/pypy/jit/metainterp/optimizeopt/__init__.py
@@ -10,7 +10,7 @@
 from pypy.jit.metainterp.optimizeopt.earlyforce import OptEarlyForce
 from pypy.rlib.jit import PARAMETERS, ENABLE_ALL_OPTS
 from pypy.rlib.unroll import unrolling_iterable
-from pypy.rlib.debug import debug_start, debug_stop, debug_print
+from pypy.rlib.debug import debug_start, debug_stop
 
 
 ALL_OPTS = [('intbounds', OptIntBounds),
@@ -47,7 +47,8 @@
 
     return optimizations, unroll
 
-def optimize_trace(metainterp_sd, loop, enable_opts, 
inline_short_preamble=True):
+def optimize_trace(jitdriver_sd, metainterp_sd, loop, enable_opts,
+                   inline_short_preamble=True):
     """Optimize loop.operations to remove internal overheadish operations.
     """
     debug_start("jit-optimize")
@@ -58,7 +59,8 @@
         if unroll:
             optimize_unroll(metainterp_sd, loop, optimizations, 
inline_short_preamble)
         else:
-            optimizer = Optimizer(metainterp_sd, loop, optimizations)
+            optimizer = Optimizer(jitdriver_sd, metainterp_sd, loop,
+                                  optimizations)
             optimizer.propagate_all_forward()
     finally:
         debug_stop("jit-optimize")
diff --git a/pypy/jit/metainterp/optimizeopt/optimizer.py 
b/pypy/jit/metainterp/optimizeopt/optimizer.py
--- a/pypy/jit/metainterp/optimizeopt/optimizer.py
+++ b/pypy/jit/metainterp/optimizeopt/optimizer.py
@@ -360,7 +360,8 @@
 
 class Optimizer(Optimization):
 
-    def __init__(self, metainterp_sd, loop, optimizations=None):
+    def __init__(self, jitdriver_sd, metainterp_sd, loop, optimizations=None):
+        self.jitdriver_sd = jitdriver_sd
         self.metainterp_sd = metainterp_sd
         self.cpu = metainterp_sd.cpu
         self.loop = loop
@@ -599,7 +600,7 @@
             # means we need to copy the op and attach a new descr
             xxx
             op = op.copy_and_change(op.getopnum(), descr=None)
-        descr = op.invent_descr()
+        descr = op.invent_descr(self.jitdriver_sd, self.metainterp_sd)
         modifier = resume.ResumeDataVirtualAdder(descr, self.resumedata_memo)
         try:
             newboxes = modifier.finish(self, self.pendingfields)
diff --git a/pypy/jit/metainterp/optimizeopt/test/test_optimizebasic.py 
b/pypy/jit/metainterp/optimizeopt/test/test_optimizebasic.py
--- a/pypy/jit/metainterp/optimizeopt/test/test_optimizebasic.py
+++ b/pypy/jit/metainterp/optimizeopt/test/test_optimizebasic.py
@@ -16,7 +16,7 @@
     from pypy.jit.metainterp.resume import tag, TAGBOX
     b0 = BoxInt()
     b1 = BoxInt()
-    opt = optimizeopt.Optimizer(FakeMetaInterpStaticData(LLtypeMixin.cpu),
+    opt = optimizeopt.Optimizer(None, 
FakeMetaInterpStaticData(LLtypeMixin.cpu),
                                 None)
     op = create_resop_1(rop.GUARD_TRUE, None, BoxInt(0))
     # setup rd data
@@ -3005,7 +3005,7 @@
         #
         p2 = virtual_ref(p1, 3)
         setfield_gc(p0, p2, descr=nextdescr)
-        call_may_force(i1, descr=mayforcevirtdescr)
+        call_may_force_n(i1, descr=mayforcevirtdescr)
         guard_not_forced() [i1]
         virtual_ref_finish(p2, p1)
         setfield_gc(p0, NULL, descr=nextdescr)
@@ -3019,7 +3019,7 @@
         setfield_gc(p2, i3, descr=virtualtokendescr)
         setfield_gc(p0, p2, descr=nextdescr)
         #
-        call_may_force(i1, descr=mayforcevirtdescr)
+        call_may_force_n(i1, descr=mayforcevirtdescr)
         guard_not_forced() [i1]
         #
         setfield_gc(p0, NULL, descr=nextdescr)
@@ -3044,8 +3044,8 @@
         #
         p2 = virtual_ref(p1, 2)
         setfield_gc(p0, p2, descr=nextdescr)
-        call_may_force(i1, descr=mayforcevirtdescr)
-        guard_not_forced(descr=fdescr) [p2, p1]
+        call_may_force_n(i1, descr=mayforcevirtdescr)
+        guard_not_forced() [p2, p1]
         virtual_ref_finish(p2, p1)
         setfield_gc(p0, NULL, descr=nextdescr)
         jump(p0, i1)
@@ -3058,8 +3058,8 @@
         setfield_gc(p2, i3, descr=virtualtokendescr)
         setfield_gc(p0, p2, descr=nextdescr)
         #
-        call_may_force(i1, descr=mayforcevirtdescr)
-        guard_not_forced(descr=fdescr) [p2, i1]
+        call_may_force_n(i1, descr=mayforcevirtdescr)
+        guard_not_forced() [p2, i1]
         #
         setfield_gc(p0, NULL, descr=nextdescr)
         p1 = new_with_vtable(ConstClass(node_vtable))
@@ -3089,8 +3089,8 @@
         #
         p2 = virtual_ref(p1, 2)
         setfield_gc(p0, p2, descr=refdescr)
-        call(i1, descr=nonwritedescr)
-        guard_no_exception(descr=fdescr) [p2, p1]
+        call_n(i1, descr=nonwritedescr)
+        guard_no_exception() [p2, p1]
         virtual_ref_finish(p2, p1)
         setfield_gc(p0, NULL, descr=refdescr)
         jump(p0, i1)
@@ -3098,8 +3098,8 @@
         expected = """
         [p0, i1]
         i3 = force_token()
-        call(i1, descr=nonwritedescr)
-        guard_no_exception(descr=fdescr) [i3, i1, p0]
+        call_n(i1, descr=nonwritedescr)
+        guard_no_exception() [i3, i1, p0]
         setfield_gc(p0, NULL, descr=refdescr)
         jump(p0, i1)
         """
@@ -3123,7 +3123,7 @@
         p2 = virtual_ref(p1, 7)
         escape(p2)
         virtual_ref_finish(p2, p1)
-        call_may_force(i1, descr=mayforcevirtdescr)
+        call_may_force_n(i1, descr=mayforcevirtdescr)
         guard_not_forced() []
         jump(i1)
         """
@@ -3136,7 +3136,7 @@
         p1 = new_with_vtable(ConstClass(node_vtable))
         setfield_gc(p2, p1, descr=virtualforceddescr)
         setfield_gc(p2, -3, descr=virtualtokendescr)
-        call_may_force(i1, descr=mayforcevirtdescr)
+        call_may_force_n(i1, descr=mayforcevirtdescr)
         guard_not_forced() []
         jump(i1)
         """
@@ -3148,7 +3148,7 @@
         p2 = virtual_ref(p1, 23)
         escape(p2)
         virtual_ref_finish(p2, p1)
-        call_may_force(i1, descr=mayforcevirtdescr)
+        call_may_force_n(i1, descr=mayforcevirtdescr)
         guard_not_forced() [i1]
         jump(i1, p1)
         """
@@ -3160,7 +3160,7 @@
         escape(p2)
         setfield_gc(p2, p1, descr=virtualforceddescr)
         setfield_gc(p2, -3, descr=virtualtokendescr)
-        call_may_force(i1, descr=mayforcevirtdescr)
+        call_may_force_n(i1, descr=mayforcevirtdescr)
         guard_not_forced() [i1]
         jump(i1, p1)
         """
@@ -3173,8 +3173,8 @@
         setarrayitem_gc(p1, 1, 1, descr=arraydescr)
         p2 = new_array(3, descr=arraydescr)
         setarrayitem_gc(p2, 1, 3, descr=arraydescr)
-        call(0, p1, p2, 1, 1, 2, descr=arraycopydescr)
-        i2 = getarrayitem_gc(p2, 1, descr=arraydescr)
+        call_n(0, p1, p2, 1, 1, 2, descr=arraycopydescr)
+        i2 = getarrayitem_gc_i(p2, 1, descr=arraydescr)
         jump(i2)
         '''
         expected = '''
@@ -3190,8 +3190,8 @@
         p2 = new_array(3, descr=arraydescr)
         setarrayitem_gc(p1, 0, i0, descr=arraydescr)
         setarrayitem_gc(p2, 0, 3, descr=arraydescr)
-        call(0, p1, p2, 1, 1, 2, descr=arraycopydescr)
-        i2 = getarrayitem_gc(p2, 0, descr=arraydescr)
+        call_n(0, p1, p2, 1, 1, 2, descr=arraycopydescr)
+        i2 = getarrayitem_gc_i(p2, 0, descr=arraydescr)
         jump(i2)
         '''
         expected = '''
@@ -3207,7 +3207,7 @@
         p2 = new_array(3, descr=arraydescr)
         setarrayitem_gc(p1, 2, 10, descr=arraydescr)
         setarrayitem_gc(p2, 2, 13, descr=arraydescr)
-        call(0, p1, p2, 0, 0, 3, descr=arraycopydescr)
+        call_n(0, p1, p2, 0, 0, 3, descr=arraycopydescr)
         jump(p2)
         '''
         expected = '''
@@ -3224,7 +3224,7 @@
         ops = '''
         [p1]
         p0 = new_array(0, descr=arraydescr)
-        call(0, p0, p1, 0, 0, 0, descr=arraycopydescr)
+        call_n(0, p0, p1, 0, 0, 0, descr=arraycopydescr)
         jump(p1)
         '''
         expected = '''
diff --git a/pypy/jit/metainterp/optimizeopt/test/test_util.py 
b/pypy/jit/metainterp/optimizeopt/test/test_util.py
--- a/pypy/jit/metainterp/optimizeopt/test/test_util.py
+++ b/pypy/jit/metainterp/optimizeopt/test/test_util.py
@@ -430,6 +430,7 @@
 
         self.loop = loop
         metainterp_sd = FakeMetaInterpStaticData(self.cpu)
+        jitdriver_sd = None
         if hasattr(self, 'vrefinfo'):
             metainterp_sd.virtualref_info = self.vrefinfo
         if hasattr(self, 'callinfocollection'):
@@ -440,7 +441,7 @@
                 fail_args = op.get_extra("failargs")
                 op._rd_frame_info_list = resume.FrameInfo(None, "code", 11)
                 op._rd_snapshot = resume.Snapshot(None, _sortboxes(fail_args))
-        optimize_trace(metainterp_sd, loop, self.enable_opts)
+        optimize_trace(jitdriver_sd, metainterp_sd, loop, self.enable_opts)
 
     def unroll_and_optimize(self, loop):
         operations =  loop.operations
diff --git a/pypy/jit/metainterp/resoperation.py 
b/pypy/jit/metainterp/resoperation.py
--- a/pypy/jit/metainterp/resoperation.py
+++ b/pypy/jit/metainterp/resoperation.py
@@ -1048,13 +1048,12 @@
             raise Exception("rd_frame_info_list already set")
         self._rd_frame_info_list = rd_frame_info_list
 
-    def invent_descr(self):
+    def invent_descr(self, jitdriver_sd, metainterp_sd):
         from pypy.jit.metainterp import compile
         
         opnum = self.getopnum()
         if opnum == rop.GUARD_NOT_FORCED:
-            descr = compile.ResumeGuardForcedDescr(metainterp_sd,
-                                                   metainterp.jitdriver_sd)
+            descr = compile.ResumeGuardForcedDescr(metainterp_sd, jitdriver_sd)
         elif opnum == rop.GUARD_NOT_INVALIDATED:
             descr = compile.ResumeGuardNotInvalidated()
         else:
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to