Author: Maciej Fijalkowski <[email protected]>
Branch: result-in-resops
Changeset: r58370:377145707965
Date: 2012-10-22 18:56 +0200
http://bitbucket.org/pypy/pypy/changeset/377145707965/

Log:    fix fix fix

diff --git a/pypy/jit/metainterp/executor.py b/pypy/jit/metainterp/executor.py
--- a/pypy/jit/metainterp/executor.py
+++ b/pypy/jit/metainterp/executor.py
@@ -341,7 +341,8 @@
                          rop.CALL_MALLOC_NURSERY,
                          rop.LABEL,
                          rop.INPUT_i, rop.INPUT_r, rop.INPUT_f,
-                         rop.FORCE_SPILL, rop.ESCAPE,
+                         rop.FORCE_SPILL, rop.ESCAPE, rop.ESCAPE_r,
+                         rop.ESCAPE_f,
                          ):      # list of opcodes never executed by pyjitpl
                 continue
             raise AssertionError("missing %r" % (orig_key,))
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
@@ -628,11 +628,9 @@
         self._newoperations.append(op)
 
     def store_final_boxes_in_guard(self, op):
-        if op.getdescr() is not None:
-            # means we need to copy the op and attach a new descr
-            xxx
-            op = op.copy_and_change(op.getopnum(), descr=None)
+        assert op.getdescr() is None
         descr = op.invent_descr(self.jitdriver_sd, self.metainterp_sd)
+        op.setdescr(descr)
         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
@@ -8,17 +8,18 @@
 from pypy.jit.metainterp.optimize import InvalidLoop
 from pypy.jit.metainterp.history import get_const_ptr_for_string
 from pypy.jit.metainterp import executor, compile, resume
-from pypy.jit.metainterp.resoperation import rop, opname, ConstInt, BoxInt,\
+from pypy.jit.metainterp.resoperation import rop, opname, ConstInt,\
      create_resop_1, create_resop
+from pypy.jit.metainterp.test.support import boxint
 from pypy.rlib.rarithmetic import LONG_BIT
 
 def test_store_final_boxes_in_guard():
     from pypy.jit.metainterp.resume import tag, TAGBOX
-    b0 = BoxInt()
-    b1 = BoxInt()
+    b0 = boxint()
+    b1 = boxint()
     opt = optimizeopt.Optimizer(None, 
FakeMetaInterpStaticData(LLtypeMixin.cpu),
                                 None)
-    op = create_resop_1(rop.GUARD_TRUE, None, BoxInt(0))
+    op = create_resop_1(rop.GUARD_TRUE, None, boxint(0), mutable=True)
     # setup rd data
     fi0 = resume.FrameInfo(None, "code0", 11)
     op._rd_frame_info_list = resume.FrameInfo(fi0, "code1", 33)
@@ -186,7 +187,6 @@
     def test_constfold_all(self):
         from pypy.jit.backend.llgraph.llimpl import TYPES     # xxx fish
         from pypy.jit.metainterp.executor import execute_nonspec
-        from pypy.jit.metainterp.resoperation import BoxInt
         import random
         for opnum in [rop._ALWAYS_PURE_FIRST, rop._ALWAYS_PURE_NO_PTR_LAST]:
             try:
@@ -209,7 +209,7 @@
             escape(i1)
             jump()
             """ % (op.lower(), ', '.join(map(str, args)))
-            argboxes = [BoxInt(a) for a in args]
+            argboxes = [boxint(a) for a in args]
             expected_value = execute_nonspec(self.cpu, None, opnum,
                                              argboxes).getint()
             expected = """
@@ -1463,7 +1463,7 @@
         ops = """
         [p1]
         i1 = getfield_gc_i(p1, descr=valuedescr)
-        escape()
+        escape(0)
         i2 = getfield_gc_i(p1, descr=valuedescr)
         escape(i1)
         escape(i2)
@@ -1475,7 +1475,7 @@
         ops = """
         [p1, i1]
         setfield_gc(p1, i1, descr=valuedescr)
-        escape()
+        escape(0)
         i2 = getfield_gc_i(p1, descr=valuedescr)
         escape(i2)
         jump(p1, i1)
@@ -1581,7 +1581,7 @@
         ops = """
         [p1, i1, i2]
         setfield_gc(p1, i1, descr=valuedescr)
-        escape()
+        escape(0)
         setfield_gc(p1, i2, descr=valuedescr)
         jump(p1, i1, i2)
         """
@@ -1866,7 +1866,7 @@
         escape(p4)
         #
         p2 = new_with_vtable(ConstClass(node_vtable))
-        p3 = escape()
+        p3 = escape(0)
         setfield_gc(p2, p3, descr=nextdescr)
         jump(i0, p2)
         """
@@ -1875,7 +1875,7 @@
         guard_nonnull(p4) []
         escape(p4)
         #
-        p3 = escape()
+        p3 = escape(0)
         jump(i0, p3)
         """
         py.test.skip("XXX")
@@ -1890,7 +1890,7 @@
         escape(p4)
         #
         p2 = new_array(1, descr=arraydescr2)
-        p3 = escape()
+        p3 = escape(0)
         setarrayitem_gc(p2, 0, p3, descr=arraydescr2)
         jump(i0, p2)
         """
@@ -1899,7 +1899,7 @@
         guard_nonnull(p4) []
         escape(p4)
         #
-        p3 = escape()
+        p3 = escape(0)
         jump(i0, p3)
         """
         py.test.skip("XXX")
diff --git a/pypy/jit/metainterp/optimizeopt/test/test_optimizeopt.py 
b/pypy/jit/metainterp/optimizeopt/test/test_optimizeopt.py
--- a/pypy/jit/metainterp/optimizeopt/test/test_optimizeopt.py
+++ b/pypy/jit/metainterp/optimizeopt/test/test_optimizeopt.py
@@ -135,9 +135,9 @@
     def test_simple(self):
         ops = """
         []
-        f = escape()
+        f = escape_f(0)
         f0 = float_sub(f, 1.0)
-        guard_value(f0, 0.0) [f0]
+        guard_value(f0, 0.0)
         escape(f)
         jump()
         """
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
@@ -9,6 +9,7 @@
                                          JitCellToken, TargetToken)
 from pypy.jit.metainterp.optimizeopt.util import sort_descrs, equaloplists,\
      ArgsDict, ArgsSet
+from pypy.jit.metainterp.test.support import boxptr
 from pypy.jit.codewriter.effectinfo import EffectInfo
 from pypy.jit.codewriter.heaptracker import register_known_gctype
 from pypy.jit.tool.oparser import parse, pure_parse
@@ -124,11 +125,11 @@
     node.parent.typeptr = node_vtable
     node2 = lltype.malloc(NODE2)
     node2.parent.parent.typeptr = node_vtable2
-    nodebox = BoxPtr(lltype.cast_opaque_ptr(llmemory.GCREF, node))
-    myptr = nodebox.value
+    myptr = lltype.cast_opaque_ptr(llmemory.GCREF, node)
+    nodebox = boxptr(myptr)
     myptr2 = lltype.cast_opaque_ptr(llmemory.GCREF, lltype.malloc(NODE))
     nullptr = lltype.nullptr(llmemory.GCREF.TO)
-    nodebox2 = BoxPtr(lltype.cast_opaque_ptr(llmemory.GCREF, node2))
+    nodebox2 = boxptr(lltype.cast_opaque_ptr(llmemory.GCREF, node2))
     nodesize = cpu.sizeof(NODE)
     nodesize2 = cpu.sizeof(NODE2)
     valuedescr = cpu.fielddescrof(NODE, 'value')
@@ -145,8 +146,8 @@
     quasi = lltype.malloc(QUASI, immortal=True)
     quasi.inst_field = -4247
     quasifielddescr = cpu.fielddescrof(QUASI, 'inst_field')
-    quasibox = BoxPtr(lltype.cast_opaque_ptr(llmemory.GCREF, quasi))
-    quasiptr = quasibox.value
+    quasiptr = lltype.cast_opaque_ptr(llmemory.GCREF, quasi)
+    quasibox = boxptr(quasiptr)
     quasiimmutdescr = QuasiImmutDescr(cpu, quasibox,
                                       quasifielddescr,
                                       cpu.fielddescrof(QUASI, 'mutate_field'))
@@ -181,7 +182,7 @@
     ssize = cpu.sizeof(S)
     adescr = cpu.fielddescrof(S, 'a')
     bdescr = cpu.fielddescrof(S, 'b')
-    sbox = BoxPtr(lltype.cast_opaque_ptr(llmemory.GCREF, lltype.malloc(S)))
+    sbox = boxptr(lltype.cast_opaque_ptr(llmemory.GCREF, lltype.malloc(S)))
     arraydescr2 = cpu.arraydescrof(lltype.GcArray(lltype.Ptr(S)))
 
     T = lltype.GcStruct('TUPLE',
@@ -397,11 +398,10 @@
 
 class BaseTest(object):
 
-    def parse(self, s, boxkinds=None, results=None):
+    def parse(self, s, results=None):
         return parse(s, self.cpu, self.namespace,
                      type_system=self.type_system,
-                     boxkinds=boxkinds,
-                     results=results, process_guard=self.process_guard)
+                     results=results)
 
     def setup_method(self, meth):
         self.oparsers = []
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
@@ -843,7 +843,6 @@
             descr = compile.ResumeGuardDescr()
         descr.rd_snapshot = self._rd_snapshot
         descr.rd_frame_info_list = self._rd_frame_info_list
-        self.setdescr(descr)
         return descr
 
 # ============
@@ -1256,6 +1255,8 @@
     '_NOSIDEEFFECT_LAST', # ----- end of no_side_effect operations -----
 
     'ESCAPE/1/v', # tests
+    'ESCAPE_r/1/r', # tests
+    'ESCAPE_f/1/f', # tests
     'FORCE_SPILL/1/v', # tests
 
     'SETARRAYITEM_GC/3d/v',
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to