[pypy-commit] pypy resume-refactor: (fijal, rguillebert) Hack test_optimizebasic a little

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


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

Log:	(fijal, rguillebert) Hack test_optimizebasic a little

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
@@ -11,31 +11,6 @@
 from rpython.jit.metainterp.resoperation import rop, ResOperation
 from rpython.rlib.rarithmetic import LONG_BIT
 
-def test_store_final_boxes_in_guard():
-    from rpython.jit.metainterp.compile import ResumeGuardDescr
-    from rpython.jit.metainterp.resume import tag, TAGBOX
-    b0 = BoxInt()
-    b1 = BoxInt()
-    opt = optimizeopt.Optimizer(FakeMetaInterpStaticData(LLtypeMixin.cpu),
-                                None)
-    fdescr = ResumeGuardDescr()
-    op = ResOperation(rop.GUARD_TRUE, ['dummy'], None, descr=fdescr)
-    # setup rd data
-    fi0 = resume.FrameInfo(None, "code0", 11)
-    fdescr.rd_frame_info_list = resume.FrameInfo(fi0, "code1", 33)
-    snapshot0 = resume.Snapshot(None, [b0])
-    fdescr.rd_snapshot = resume.Snapshot(snapshot0, [b1])
-    #
-    opt.store_final_boxes_in_guard(op, [])
-    if op.getfailargs() == [b0, b1]:
-        assert list(fdescr.rd_numb.nums)      == [tag(1, TAGBOX)]
-        assert list(fdescr.rd_numb.prev.nums) == [tag(0, TAGBOX)]
-    else:
-        assert op.getfailargs() == [b1, b0]
-        assert list(fdescr.rd_numb.nums)      == [tag(0, TAGBOX)]
-        assert list(fdescr.rd_numb.prev.nums) == [tag(1, TAGBOX)]
-    assert fdescr.rd_virtuals is None
-    assert fdescr.rd_consts == []
 
 def test_sharing_field_lists_of_virtual():
     class FakeOptimizer(object):
@@ -189,12 +164,34 @@
     def test_constant_propagate(self):
         ops = """
         []
+        enter_frame(-1, descr=jitcode)
         i0 = int_add(2, 3)
         i1 = int_is_true(i0)
-        guard_true(i1) []
+        guard_true(i1)
         i2 = int_is_zero(i1)
-        guard_false(i2) []
-        guard_value(i0, 5) []
+        guard_false(i2)
+        guard_value(i0, 5)
+        leave_frame()
+        jump()
+        """
+        expected = """
+        []
+        enter_frame(-1, descr=jitcode)
+        leave_frame()
+        jump()
+        """
+        self.optimize_loop(ops, expected)
+
+    def test_constant_propagate_ovf(self):
+        ops = """
+        []
+        i0 = int_add_ovf(2, 3)
+        guard_no_overflow()
+        i1 = int_is_true(i0)
+        guard_true(i1)
+        i2 = int_is_zero(i1)
+        guard_false(i2)
+        guard_value(i0, 5)
         jump()
         """
         expected = """
@@ -203,36 +200,18 @@
         """
         self.optimize_loop(ops, expected)
 
-    def test_constant_propagate_ovf(self):
-        ops = """
-        []
-        i0 = int_add_ovf(2, 3)
-        guard_no_overflow() []
-        i1 = int_is_true(i0)
-        guard_true(i1) []
-        i2 = int_is_zero(i1)
-        guard_false(i2) []
-        guard_value(i0, 5) []
-        jump()
-        """
-        expected = """
-        []
-        jump()
-        """
-        self.optimize_loop(ops, expected)
-
     # ----------
 
     def test_remove_guard_class_1(self):
         ops = """
         [p0]
-        guard_class(p0, ConstClass(node_vtable)) []
-        guard_class(p0, ConstClass(node_vtable)) []
+        guard_class(p0, ConstClass(node_vtable))
+        guard_class(p0, ConstClass(node_vtable))
         jump(p0)
         """
         expected = """
         [p0]
-        guard_class(p0, ConstClass(node_vtable)) []
+        guard_class(p0, ConstClass(node_vtable))
         jump(p0)
         """
         self.optimize_loop(ops, expected)
@@ -242,7 +221,7 @@
         [i0]
         p0 = new_with_vtable(ConstClass(node_vtable))
         escape(p0)
-        guard_class(p0, ConstClass(node_vtable)) []
+        guard_class(p0, ConstClass(node_vtable))
         jump(i0)
         """
         expected = """
@@ -257,7 +236,7 @@
         ops = """
         [i0]
         p0 = same_as(ConstPtr(myptr))
-        guard_class(p0, ConstClass(node_vtable)) []
+        guard_class(p0, ConstClass(node_vtable))
         jump(i0)
         """
         expected = """
@@ -270,15 +249,15 @@
         ops = """
         [i0]
         i1 = int_lt(i0, 0)
-        guard_true(i1) []
+        guard_true(i1)
         i2 = int_ge(i0, 0)
-        guard_false(i2) []
+        guard_false(i2)
         jump(i0)
         """
         expected = """
         [i0]
         i1 = int_lt(i0, 0)
-        guard_true(i1) []
+        guard_true(i1)
         jump(i0)
         """
         self.optimize_loop(ops, expected)
@@ -287,15 +266,15 @@
         ops = """
         [i0]
         i1 = int_gt(i0, 0)
-        guard_true(i1) []
+        guard_true(i1)
         i2 = int_le(i0, 0)
-        guard_false(i2) []
+        guard_false(i2)
         jump(i0)
         """
         expected = """
         [i0]
         i1 = int_gt(i0, 0)
-        guard_true(i1) []
+        guard_true(i1)
         jump(i0)
         """
         self.optimize_loop(ops, expected)
@@ -304,15 +283,15 @@
         ops = """
         [i0]
         i1 = int_gt(i0, 0)
-        guard_true(i1) []
+        guard_true(i1)
         i2 = int_lt(0, i0)
-        guard_true(i2) []
+        guard_true(i2)
         jump(i0)
         """
         expected = """
         [i0]
         i1 = int_gt(i0, 0)
-        guard_true(i1) []
+        guard_true(i1)
         jump(i0)
         """
         self.optimize_loop(ops, expected)
@@ -321,15 +300,15 @@
         ops = """
         [i0]
         i1 = int_gt(i0, 0)
-        guard_true(i1) []
+        guard_true(i1)
         i2 = int_ge(0, i0)
-        guard_false(i2) []
+        guard_false(i2)
         jump(i0)
         """
         expected = """
         [i0]
         i1 = int_gt(i0, 0)
-        guard_true(i1) []
+        guard_true(i1)
         jump(i0)
         """
         self.optimize_loop(ops, expected)
@@ -338,9 +317,9 @@
         ops = """
         []
         i0 = escape()
-        guard_value(i0, 0) []
+        guard_value(i0, 0)
         i1 = int_add(i0, 1)
-        guard_value(i1, 1) []
+        guard_value(i1, 1)
         i2 = int_add(i1, 2)
         escape(i2)
         jump()
@@ -348,7 +327,7 @@
         expected = """
         []
         i0 = escape()
-        guard_value(i0, 0) []
+        guard_value(i0, 0)
         escape(3)
         jump()
         """
@@ -357,7 +336,7 @@
     def test_remove_guard_value_if_constant(self):
         ops = """
         [p1]
-        guard_value(p1, ConstPtr(myptr)) []
+        guard_value(p1, ConstPtr(myptr))
         jump(ConstPtr(myptr))
         """
         expected = """
@@ -370,13 +349,13 @@
     def test_ooisnull_oononnull_1(self):
         ops = """
         [p0]
-        guard_class(p0, ConstClass(node_vtable)) []
-        guard_nonnull(p0) []
+        guard_class(p0, ConstClass(node_vtable))
+        guard_nonnull(p0)
         jump(p0)
         """
         expected = """
         [p0]
-        guard_class(p0, ConstClass(node_vtable)) []
+        guard_class(p0, ConstClass(node_vtable))
         jump(p0)
         """
         self.optimize_loop(ops, expected)
@@ -385,9 +364,27 @@
         ops = """
         [i0]
         i1 = int_is_true(i0)
-        guard_true(i1) []
+        guard_true(i1)
         i2 = int_is_true(i0)
-        guard_true(i2) []
+        guard_true(i2)
+        jump(i0)
+        """
+        expected = """
+        [i0]
+        i1 = int_is_true(i0)
+        guard_true(i1)
+        jump(i0)
+        """
+        self.optimize_loop(ops, expected)
+
+    def test_int_is_true_is_zero(self):
+        py.test.skip("XXX implement me")
+        ops = """
+        [i0]
+        i1 = int_is_true(i0)
+        guard_true(i1)
+        i2 = int_is_zero(i0)
+        guard_false(i2) []
         jump(i0)
         """
         expected = """
@@ -398,37 +395,19 @@
         """
         self.optimize_loop(ops, expected)
 
-    def test_int_is_true_is_zero(self):
-        py.test.skip("XXX implement me")
-        ops = """
-        [i0]
-        i1 = int_is_true(i0)
-        guard_true(i1) []
-        i2 = int_is_zero(i0)
-        guard_false(i2) []
-        jump(i0)
-        """
-        expected = """
-        [i0]
-        i1 = int_is_true(i0)
-        guard_true(i1) []
-        jump(i0)
-        """
-        self.optimize_loop(ops, expected)
-
     def test_int_is_zero_int_is_true(self):
         ops = """
         [i0]
         i1 = int_is_zero(i0)
-        guard_true(i1) []
+        guard_true(i1)
         i2 = int_is_true(i0)
-        guard_false(i2) []
+        guard_false(i2)
         jump(i0)
         """
         expected = """
         [i0]
         i1 = int_is_zero(i0)
-        guard_true(i1) []
+        guard_true(i1)
         jump(0)
         """
         self.optimize_loop(ops, expected)
@@ -436,13 +415,13 @@
     def test_ooisnull_oononnull_2(self):
         ops = """
         [p0]
-        guard_nonnull(p0) []
-        guard_nonnull(p0) []
+        guard_nonnull(p0)
+        guard_nonnull(p0)
         jump(p0)
         """
         expected = """
         [p0]
-        guard_nonnull(p0) []
+        guard_nonnull(p0)
         jump(p0)
         """
         self.optimize_loop(ops, expected)
@@ -451,14 +430,14 @@
         ops = """
         []
         p0 = escape()
-        guard_isnull(p0) []
-        guard_isnull(p0) []
+        guard_isnull(p0)
+        guard_isnull(p0)
         jump()
         """
         expected = """
         []
         p0 = escape()
-        guard_isnull(p0) []
+        guard_isnull(p0)
         jump()
         """
         self.optimize_loop(ops, expected)
@@ -466,16 +445,25 @@
     def test_ooisnull_oononnull_via_virtual(self):
         ops = """
         [p0]
+        enter_frame(-1, descr=jitcode)
         pv = new_with_vtable(ConstClass(node_vtable))
         setfield_gc(pv, p0, descr=valuedescr)
-        guard_nonnull(p0) []
+        resume_put(p0, 0, 2)
+        guard_nonnull(p0)
         p1 = getfield_gc(pv, descr=valuedescr)
-        guard_nonnull(p1) []
+        guard_nonnull(p1)
+        leave_frame()
         jump(p0)
         """
+        xxx
         expected = """
         [p0]
-        guard_nonnull(p0) []
+        enter_frame(-1, descr=jitcode)
+        resume_put(p0, 0, 2)
+        pv = resume_new_with_vtable(ConstClass(node_vtable))
+        resume_setfield_gc(p0, pv, descr=...)
+        guard_nonnull(p0)
+        leave_frame()
         jump(p0)
         """
         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
@@ -260,7 +260,7 @@
     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)
+    jitcode.setup(num_regs_i=2, num_regs_r=1, num_regs_f=0)
 
     namespace = locals()
 


More information about the pypy-commit mailing list