[pypy-commit] pypy optresult-unroll: port some of test_virtualstate

fijal noreply at buildbot.pypy.org
Fri Sep 4 17:25:16 CEST 2015


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: optresult-unroll
Changeset: r79432:83da4c5584bd
Date: 2015-09-04 17:24 +0200
http://bitbucket.org/pypy/pypy/changeset/83da4c5584bd/

Log:	port some of test_virtualstate

diff --git a/rpython/jit/metainterp/optimizeopt/test/test_virtualstate.py b/rpython/jit/metainterp/optimizeopt/test/test_virtualstate.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_virtualstate.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_virtualstate.py
@@ -21,7 +21,8 @@
 from rpython.jit.metainterp.optimizeopt import info
 
 class FakeOptimizer(Optimizer):
-    def __init__(self):
+    def __init__(self, cpu):
+        self.cpu = cpu
         self.optearlyforce = None
 
 class BaseTestGenerateGuards(BaseTest):
@@ -29,7 +30,7 @@
         if inputargs is None:
             inputargs = [box]
         info1.position = info2.position = 0
-        state = GenerateGuardState(self.cpu)
+        state = GenerateGuardState(FakeOptimizer(self.cpu))
         info1.generate_guards(info2, box, opinfo, state)
         self.compare(state.extra_guards, expected, inputargs)
 
@@ -51,7 +52,7 @@
         if info2.position == -1:
             info2.position = 0
         if state is None:
-            state = GenerateGuardState(self.cpu)
+            state = GenerateGuardState(FakeOptimizer(self.cpu))
         info1.generate_guards(info2, box, opinfo, state)
         assert not state.extra_guards
         return state
@@ -62,12 +63,12 @@
         if info2.position == -1:
             info2.position = 0
         if state is None:
-            state = GenerateGuardState(self.cpu)
+            state = GenerateGuardState(FakeOptimizer(self.cpu))
         with py.test.raises(VirtualStatesCantMatch):
             info1.generate_guards(info2, box, opinfo, state)
 
     def test_make_inputargs(self):
-        optimizer = FakeOptimizer()
+        optimizer = FakeOptimizer(self.cpu)
         args = [InputArgInt()]
         info0 = NotVirtualStateInfo(self.cpu, args[0].type, None)
         vs = VirtualState([info0])
@@ -119,7 +120,7 @@
             info1.position = 0
             info2 = NotVirtualStateInfo(self.cpu, tp2, info2)
             info2.position = 0
-            return VirtualState([info1]).generalization_of(VirtualState([info2]), cpu=self.cpu)
+            return VirtualState([info1]).generalization_of(VirtualState([info2]), FakeOptimizer(self.cpu))
 
         assert isgeneral('i', None, 'i', ConstIntBound(7))
         assert not isgeneral('i', ConstIntBound(7), 'i', None)
@@ -169,24 +170,27 @@
             self.check_invalid(info2, info1)
             self.check_no_guards(info1, info1)
             self.check_no_guards(info2, info2)
+        class FieldDescr:
+            def get_index(self):
+                return 0
+        fielddescr = FieldDescr()
         fakedescr = object()
-        fielddescr = object()
         fldtst(VArrayStateInfo(fakedescr), VArrayStateInfo(fakedescr))
         fldtst(VStructStateInfo(fakedescr, [fielddescr]), VStructStateInfo(fakedescr, [fielddescr]))
         fldtst(VirtualStateInfo(ConstInt(42), [fielddescr]), VirtualStateInfo(ConstInt(42), [fielddescr]))
-        fldtst(VArrayStructStateInfo(fakedescr, [[fielddescr]]), VArrayStructStateInfo(fakedescr, [[fielddescr]]))
+        fldtst(VArrayStructStateInfo(fakedescr, [fielddescr], 1), VArrayStructStateInfo(fakedescr, [fielddescr], 1))
 
     def test_known_class_generalization(self):
-        knownclass1 = info.InstancePtrInfo(ConstPtr(self.myptr))
+        knownclass1 = info.InstancePtrInfo(None, ConstPtr(self.myptr))
         info1 = NotVirtualStateInfo(self.cpu, 'r', knownclass1)
         info1.position = 0
-        knownclass2 = info.InstancePtrInfo(ConstPtr(self.myptr))
+        knownclass2 = info.InstancePtrInfo(None, ConstPtr(self.myptr))
         info2 = NotVirtualStateInfo(self.cpu, 'r', knownclass2)
         info2.position = 0
         self.check_no_guards(info1, info2)
         self.check_no_guards(info2, info1)
 
-        knownclass3 = info.InstancePtrInfo(ConstPtr(self.myptr2))
+        knownclass3 = info.InstancePtrInfo(None, ConstPtr(self.myptr2))
         info3 = NotVirtualStateInfo(self.cpu, 'r', knownclass3)
         info3.position = 0
         self.check_invalid(info1, info3)
@@ -207,16 +211,17 @@
         # set up infos
         #unknown_val = PtrOptValue(self.nodebox)
         #unknownnull_val = PtrOptValue(BoxPtr(self.nullptr))
+        opt = FakeOptimizer(self.cpu)
         unknown_info = NotVirtualStateInfo(self.cpu, 'r', None)
 
         nonnull_info = NotVirtualStateInfo(self.cpu, 'r', info.NonNullPtrInfo())
 
         classbox1 = self.cpu.ts.cls_of_box(ConstPtr(self.nodeaddr))
         knownclass_info = NotVirtualStateInfo(self.cpu, 'r',
-                                              info.InstancePtrInfo(classbox1))
+                                    info.InstancePtrInfo(None, classbox1))
         classbox2 = self.cpu.ts.cls_of_box(ConstPtr(self.node2addr))
         knownclass2_info = NotVirtualStateInfo(self.cpu, 'r',
-                                               info.InstancePtrInfo(classbox2))
+                                    info.InstancePtrInfo(None, classbox2))
 
         constant_info = NotVirtualStateInfo(self.cpu, 'i',
                                             ConstIntBound(1))
@@ -241,7 +246,7 @@
 
         # unknown knownclass
         self.check_no_guards(unknown_info, knownclass_info,
-                             InputArgRef(), info.InstancePtrInfo(classbox1))
+                       InputArgRef(), info.InstancePtrInfo(None, classbox1))
         self.check_no_guards(unknown_info, knownclass_info)
 
         # unknown constant
@@ -257,10 +262,10 @@
         """
         nonnullbox = InputArgRef(self.nodeaddr)
         nonnullbox2 = InputArgRef(self.node2addr)
-        knownclassopinfo = info.InstancePtrInfo(classbox1)
-        knownclass2opinfo = info.InstancePtrInfo(classbox2)
+        knownclassopinfo = info.InstancePtrInfo(None, classbox1)
+        knownclass2opinfo = info.InstancePtrInfo(None, classbox2)
         self.guards(nonnull_info, unknown_info, nonnullbox,
-                    None, expected)
+                    nonnullbox, expected)
         self.check_invalid(nonnull_info, unknown_info, InputArgRef(), None)
         self.check_invalid(nonnull_info, unknown_info)
         self.check_invalid(nonnull_info, unknown_info)
@@ -271,7 +276,7 @@
 
         # nonnull knownclass
         self.check_no_guards(nonnull_info, knownclass_info, nonnullbox,
-                             info.InstancePtrInfo(classbox1))
+                             info.InstancePtrInfo(None, classbox1))
         self.check_no_guards(nonnull_info, knownclass_info)
 
         # nonnull constant
@@ -292,11 +297,11 @@
         guard_nonnull_class(p0, ConstClass(node_vtable)) []
         """
         self.guards(knownclass_info, unknown_info, InputArgRef(self.nodeaddr),
-                    None, expected)
+                    InputArgRef(self.nodeaddr), expected)
         self.check_invalid(knownclass_info, unknown_info, InputArgRef(), None)
         self.check_invalid(knownclass_info, unknown_info,
                            InputArgRef(self.node2addr),
-                           info.InstancePtrInfo(classbox2))
+                           InputArgRef(self.node2addr))
         self.check_invalid(knownclass_info, unknown_info)
         self.check_invalid(knownclass_info, unknown_info)
         self.check_invalid(knownclass_info, unknown_info)
@@ -307,7 +312,7 @@
         guard_class(p0, ConstClass(node_vtable)) []
         """
         self.guards(knownclass_info, nonnull_info, InputArgRef(self.nodeaddr),
-                    None, expected)
+                    InputArgRef(self.nodeaddr), expected)
         self.check_invalid(knownclass_info, nonnull_info,
                            InputArgRef(self.node2addr), None)
         self.check_invalid(knownclass_info, nonnull_info)
@@ -335,8 +340,8 @@
         [i0]
         guard_value(i0, 1) []
         """
-        self.guards(constant_info, unknown_info, InputArgInt(1),
-                    ConstIntBound(1), expected)
+        self.guards(constant_info, unknown_info, InputArgInt(),
+                    InputArgInt(1), expected)
         self.check_invalid(constant_info, unknown_info, InputArgRef(), None)
         self.check_invalid(constant_info, unknown_info)
         self.check_invalid(constant_info, unknown_info)
@@ -347,9 +352,9 @@
         guard_value(i0, 1) []
         """
         self.guards(constant_info, nonnull_info, ConstInt(1),
-                    ConstIntBound(1), expected)
+                    ConstInt(1), expected)
         self.check_invalid(constant_info, nonnull_info,
-                           ConstInt(3), ConstIntBound(3))
+                           ConstInt(3), ConstInt(3))
         self.check_invalid(constant_info, nonnull_info)
         self.check_invalid(constant_info, nonnull_info)
 
@@ -359,7 +364,7 @@
         guard_value(p0, ConstPtr(nodeaddr)) []
         """
         self.guards(constant_ptr_info, knownclass_info,
-                    const_nonnull, info.ConstPtrInfo(const_nonnull), expected)
+                    const_nonnull, const_nonnull, expected)
         self.check_invalid(constant_info, knownclass_info, InputArgRef())
         self.check_invalid(constant_info, knownclass_info)
         self.check_invalid(constant_info, knownclass_info)
@@ -386,8 +391,8 @@
         i2 = int_le(i0, 30)
         guard_true(i2) []
         """
-        self.guards(info1, info2, InputArgInt(), value1, expected)
-        self.check_invalid(info1, info2, InputArgInt(50))
+        self.guards(info1, info2, InputArgInt(), InputArgInt(15), expected)
+        self.check_invalid(info1, info2, InputArgInt(50), InputArgInt(50))
 
     def test_intbounds_constant(self):
         value1 = IntUnbounded()
@@ -402,25 +407,28 @@
 
     def test_known_class(self):
         classbox = self.cpu.ts.cls_of_box(InputArgRef(self.nodeaddr))
-        value1 = info.InstancePtrInfo(classbox)
+        value1 = info.InstancePtrInfo(None, classbox)
         info1 = NotVirtualStateInfo(self.cpu, 'r', value1)
         info2 = NotVirtualStateInfo(self.cpu, 'r', None)
         expected = """
         [p0]
         guard_nonnull_class(p0, ConstClass(node_vtable)) []        
         """
-        self.guards(info1, info2, InputArgRef(self.nodeaddr), None, expected)
+        self.guards(info1, info2, InputArgRef(),
+                    InputArgRef(self.nodeaddr), expected)
         self.check_invalid(info1, info2, InputArgRef())
 
     def test_known_class_value(self):
         classbox = self.cpu.ts.cls_of_box(InputArgRef(self.nodeaddr))
-        value1 = info.InstancePtrInfo(classbox)
+        value1 = info.InstancePtrInfo(None, classbox)
         box = InputArgRef()
         guards = []
-        value1.make_guards(box, guards)
+        value1.make_guards(box, guards, FakeOptimizer(self.cpu))
         expected = """
         [p0]
-        guard_nonnull_class(p0, ConstClass(node_vtable)) []
+        guard_nonnull(p0) []
+        guard_is_object(p0) []
+        guard_class(p0, ConstClass(node_vtable)) []
         """
         self.compare(guards, expected, [box])
 


More information about the pypy-commit mailing list