[pypy-commit] pypy resume-refactor: (fijal, rguillebert) hack at scaffolding until we pass the first test

fijal noreply at buildbot.pypy.org
Sun Jan 12 16:10:17 CET 2014


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: resume-refactor
Changeset: r68619:df624ee695ee
Date: 2014-01-12 16:09 +0100
http://bitbucket.org/pypy/pypy/changeset/df624ee695ee/

Log:	(fijal, rguillebert) hack at scaffolding until we pass the first
	test

diff --git a/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py b/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
@@ -168,14 +168,20 @@
     def test_simple(self):
         ops = """
         [i]
+        enter_frame(-1, descr=jitcode)
         i0 = int_sub(i, 1)
-        guard_value(i0, 0) [i0]
+        resume_put(i0, 0, 0)
+        guard_value(i0, 0)
+        leave_frame()
         jump(i)
         """
         expected = """
         [i]
+        enter_frame(-1, descr=jitcode)
         i0 = int_sub(i, 1)
-        guard_value(i0, 0) [i0]
+        resume_put(i0, 0, 0)
+        guard_value(i0, 0)
+        leave_frame()
         jump(1)
         """
         self.optimize_loop(ops, expected)
diff --git a/rpython/jit/metainterp/optimizeopt/test/test_util.py b/rpython/jit/metainterp/optimizeopt/test/test_util.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_util.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_util.py
@@ -19,6 +19,7 @@
 from rpython.config.translationoption import get_combined_translation_config
 from rpython.jit.metainterp.resoperation import rop, opname, ResOperation
 from rpython.jit.metainterp.optimizeopt.unroll import Inliner
+from rpython.jit.codewriter.jitcode import JitCode
 
 def test_sort_descrs():
     class PseudoDescr(AbstractDescr):
@@ -50,26 +51,6 @@
     py.test.raises(AssertionError,
                    "equaloplists(loop1.operations, loop3.operations)")
 
-def test_equaloplists_fail_args():
-    ops = """
-    [i0]
-    i1 = int_add(i0, 1)
-    i2 = int_add(i1, 1)
-    guard_true(i1) [i2, i1]
-    jump(i1)
-    """
-    namespace = {}
-    loop1 = pure_parse(ops, namespace=namespace)
-    loop2 = pure_parse(ops.replace("[i2, i1]", "[i1, i2]"),
-                       namespace=namespace)
-    py.test.raises(AssertionError,
-                   "equaloplists(loop1.operations, loop2.operations)")
-    assert equaloplists(loop1.operations, loop2.operations,
-                        strict_fail_args=False)
-    loop3 = pure_parse(ops.replace("[i2, i1]", "[i2, i0]"),
-                       namespace=namespace)
-    py.test.raises(AssertionError,
-                   "equaloplists(loop1.operations, loop3.operations)")
 
 # ____________________________________________________________
 
@@ -278,6 +259,9 @@
     register_known_gctype(cpu, intobj_immut_vtable,   INTOBJ_IMMUT)
     register_known_gctype(cpu, ptrobj_immut_vtable,   PTROBJ_IMMUT)
 
+    jitcode = JitCode('name')
+    jitcode.setup(num_regs_i=2, num_regs_r=0, num_regs_f=0)
+
     namespace = locals()
 
 # ____________________________________________________________
@@ -325,21 +309,20 @@
     _kind2count = {history.INT: 1, history.REF: 2, history.FLOAT: 3}
     return sorted(boxes, key=lambda box: _kind2count[box.type])
 
+fail_descr = history.BasicFailDescr(1)
+final_descr = history.BasicFinalDescr(2)
+
+def invent_fail_descr(model, opnum):
+    if opnum == rop.FINISH:
+        return final_descr
+    return fail_descr
+
 class BaseTest(object):
 
     def parse(self, s, boxkinds=None):
         return parse(s, self.cpu, self.namespace,
                      type_system=self.type_system,
-                     boxkinds=boxkinds,
-                     invent_fail_descr=self.invent_fail_descr)
-
-    def invent_fail_descr(self, model, opnum, fail_args):
-        if fail_args is None:
-            return None
-        descr = Storage()
-        descr.rd_frame_info_list = resume.FrameInfo(None, "code", 11)
-        descr.rd_snapshot = resume.Snapshot(None, _sortboxes(fail_args))
-        return descr
+                     boxkinds=boxkinds, invent_fail_descr=invent_fail_descr)
 
     def assert_equal(self, optimized, expected, text_right=None):
         from rpython.jit.metainterp.optimizeopt.util import equaloplists
@@ -349,7 +332,7 @@
             assert box1.__class__ == box2.__class__
             remap[box2] = box1
         assert equaloplists(optimized.operations,
-                            expected.operations, False, remap, text_right)
+                            expected.operations, remap, text_right)
 
     def _do_optimize_loop(self, loop, call_pure_results):
         from rpython.jit.metainterp.optimizeopt import optimize_trace


More information about the pypy-commit mailing list