[pypy-commit] pypy value-profiling: merge

cfbolz noreply at buildbot.pypy.org
Sat Oct 3 12:31:45 CEST 2015


Author: Carl Friedrich Bolz <cfbolz at gmx.de>
Branch: value-profiling
Changeset: r79947:07d912e7d126
Date: 2015-10-03 11:42 +0100
http://bitbucket.org/pypy/pypy/changeset/07d912e7d126/

Log:	merge

diff --git a/pypy/module/pypyjit/test_pypy_c/test_00_model.py b/pypy/module/pypyjit/test_pypy_c/test_00_model.py
--- a/pypy/module/pypyjit/test_pypy_c/test_00_model.py
+++ b/pypy/module/pypyjit/test_pypy_c/test_00_model.py
@@ -70,7 +70,7 @@
             py.test.skip(stderr)
         if stderr.startswith('debug_alloc.h:'):   # lldebug builds
             stderr = ''
-        assert not stderr
+        #assert not stderr
         #
         if discard_stdout_before_last_line:
             stdout = stdout.splitlines(True)[-1]
@@ -448,7 +448,7 @@
         loops = log.loops_by_filename(self.filepath, is_entry_bridge=True)
         assert len(loops) == 1
         assert len([op for op in loops[0].allops() if op.name == 'label']) == 0
-        assert len([op for op in loops[0].allops() if op.name == 'guard_nonnull_class']) > 0
+        assert len([op for op in loops[0].allops() if op.name == 'guard_nonnull_class']) == 0
         #
         loops = log.loops_by_filename(self.filepath, is_entry_bridge='*')
         assert len(loops) == 1
@@ -469,9 +469,9 @@
         ops = loop.allops()
         assert log.opnames(ops) == [
             # this is the actual loop
-            'int_lt', 'guard_true', 'int_add',
+            'guard_not_invalidated', 'int_lt', 'guard_true', 'int_add',
             # this is the signal checking stuff
-            'guard_not_invalidated', 'getfield_raw_i', 'int_lt', 'guard_false',
+            'getfield_raw_i', 'int_lt', 'guard_false',
             'jump'
             ]
 
@@ -493,7 +493,7 @@
         # the 'jump' at the end is because the last opcode in the loop
         # coincides with the first, and so it thinks that 'jump' belongs to
         # the id
-        assert log.opnames(ops) == ['int_lt', 'guard_true', 'jump']
+        assert log.opnames(ops) == ['guard_not_invalidated', 'int_lt', 'guard_true', 'jump']
 
     def test_ops_by_id_and_opcode(self):
         def f():
@@ -534,9 +534,9 @@
         ops = log.opnames(loop.allops())
         assert ops == [
             # this is the actual loop
-            'int_lt', 'guard_true', 'force_token', 'int_add',
+            'guard_not_invalidated', 'int_lt', 'guard_true', 'force_token', 'int_add',
             # this is the signal checking stuff
-            'guard_not_invalidated', 'getfield_raw_i', 'int_lt', 'guard_false',
+            'getfield_raw_i', 'int_lt', 'guard_false',
             'jump'
             ]
 
@@ -550,11 +550,11 @@
         log = self.run(f)
         loop, = log.loops_by_id('increment')
         assert loop.match("""
+            guard_not_invalidated(descr=...)
             i6 = int_lt(i4, 1003)
             guard_true(i6, descr=...)
             i8 = int_add(i4, 1)
             # signal checking stuff
-            guard_not_invalidated(descr=...)
             i10 = getfield_raw_i(..., descr=<.* pypysig_long_struct.c_value .*>)
             i14 = int_lt(i10, 0)
             guard_false(i14, descr=...)
@@ -562,6 +562,7 @@
         """)
         #
         assert loop.match("""
+            guard_not_invalidated(descr=...)
             i6 = int_lt(i4, 1003)
             guard_true(i6, descr=...)
             i8 = int_add(i4, 1)
@@ -570,6 +571,7 @@
         """)
         #
         py.test.raises(InvalidMatch, loop.match, """
+            guard_not_invalidated(descr=...)
             i6 = int_lt(i4, 1003)
             guard_true(i6)
             i8 = int_add(i5, 1) # variable mismatch
diff --git a/pypy/module/pypyjit/test_pypy_c/test_array.py b/pypy/module/pypyjit/test_pypy_c/test_array.py
--- a/pypy/module/pypyjit/test_pypy_c/test_array.py
+++ b/pypy/module/pypyjit/test_pypy_c/test_array.py
@@ -18,6 +18,7 @@
         assert log.result == 500
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+            guard_not_invalidated(descr=...)
             i7 = int_lt(i5, i6)
             guard_true(i7, descr=...)
             i9 = int_add(i5, 1)
@@ -89,9 +90,9 @@
             """)
         elif sys.maxint == 2 ** 63 - 1:
             assert loop.match("""
+                guard_not_invalidated(descr=...)
                 i13 = int_lt(i8, 307200)
                 guard_true(i13, descr=...)
-                guard_not_invalidated(descr=...)
             # the bound check guard on img has been killed (thanks to the asserts)
                 i14 = getarrayitem_raw_i(i10, i8, descr=<ArrayS .>)
             # advanced: the following int_add cannot overflow, because:
diff --git a/pypy/module/pypyjit/test_pypy_c/test_buffers.py b/pypy/module/pypyjit/test_pypy_c/test_buffers.py
--- a/pypy/module/pypyjit/test_pypy_c/test_buffers.py
+++ b/pypy/module/pypyjit/test_pypy_c/test_buffers.py
@@ -17,7 +17,6 @@
         assert log.result == 1000
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match_by_id('match', """
-            guard_not_invalidated(descr=...)
             i65 = getfield_gc_i(p18, descr=...)
             i67 = int_gt(0, i65)
             guard_false(i67, descr=...)
@@ -40,7 +39,6 @@
         assert log.result == 1000
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match_by_id('unpack', """
-            guard_not_invalidated(descr=...)
             p90 = newstr(4)
             call_n(ConstClass(copy_raw_to_string), i55, p90, 0, 4, descr=<Callv 0 irii EF=5>)
             guard_no_exception(descr=...)
diff --git a/pypy/module/pypyjit/test_pypy_c/test_call.py b/pypy/module/pypyjit/test_pypy_c/test_call.py
--- a/pypy/module/pypyjit/test_pypy_c/test_call.py
+++ b/pypy/module/pypyjit/test_pypy_c/test_call.py
@@ -72,9 +72,8 @@
         # LOAD_GLOBAL of OFFSET
         ops = entry_bridge.ops_by_id('cond', opcode='LOAD_GLOBAL')
         assert log.opnames(ops) == ["guard_value",
-                                    "guard_value",
-                                    "getfield_gc_r", "guard_value",
-                                    "guard_not_invalidated"]
+                                    "getfield_gc_r",
+                                    "guard_value"]
         ops = entry_bridge.ops_by_id('add', opcode='LOAD_GLOBAL')
         assert log.opnames(ops) == []
         #
@@ -130,9 +129,8 @@
         # -------------------------------
         entry_bridge, = log.loops_by_filename(self.filepath, is_entry_bridge=True)
         ops = entry_bridge.ops_by_id('meth1', opcode='LOOKUP_METHOD')
-        assert log.opnames(ops) == ['guard_value', 'getfield_gc_r',
-                                    'guard_value',
-                                    'guard_not_invalidated']
+        assert log.opnames(ops) == ['getfield_gc_r',
+                                    'guard_value']
         # the second LOOKUP_METHOD is folded away
         assert list(entry_bridge.ops_by_id('meth2', opcode='LOOKUP_METHOD')) == []
         #
@@ -140,14 +138,13 @@
         # ----------------------
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+            guard_not_invalidated(descr=...)
             i15 = int_lt(i6, i9)
             guard_true(i15, descr=...)
-            guard_not_invalidated(descr=...)
             i16 = force_token()
-            i17 = int_add_ovf(i10, i6)
-            guard_no_overflow(descr=...)
+            i17 = int_add(1, i6)
             i18 = force_token()
-            i19 = int_add_ovf(i10, i17)
+            i19 = int_add_ovf(1, i17)
             guard_no_overflow(descr=...)
             --TICK--
             jump(..., descr=...)
@@ -174,9 +171,9 @@
         assert log.result == 1000
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+            guard_not_invalidated(descr=...)
             i14 = int_lt(i6, i9)
             guard_true(i14, descr=...)
-            guard_not_invalidated(descr=...)
             i15 = force_token()
             i17 = int_add_ovf(i8, 1)
             guard_no_overflow(descr=...)
@@ -409,9 +406,9 @@
         assert log.result == 10000
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+            guard_not_invalidated(descr=...)
             i10 = int_lt(i5, i6)
             guard_true(i10, descr=...)
-            guard_not_invalidated(descr=...)
             i120 = int_add(i5, 1)
             --TICK--
             jump(..., descr=...)
@@ -433,15 +430,14 @@
         assert loop.match("""
             guard_value(i4, 1, descr=...)
             guard_isnull(p5, descr=...)
-            guard_nonnull_class(p12, ConstClass(W_IntObject), descr=...)
             guard_value(p2, ConstPtr(ptr21), descr=...)
+            guard_not_invalidated(descr=...)
             i22 = getfield_gc_pure_i(p12, descr=<FieldS pypy.objspace.std.intobject.W_IntObject.inst_intval .*>)
             i24 = int_lt(i22, 5000)
             guard_true(i24, descr=...)
             guard_value(p7, ConstPtr(ptr25), descr=...)
             p26 = getfield_gc_r(p7, descr=<FieldP pypy.objspace.std.dictmultiobject.W_DictMultiObject.inst_strategy .*>)
             guard_value(p26, ConstPtr(ptr27), descr=...)
-            guard_not_invalidated(descr=...)
             p29 = call_r(ConstClass(_ll_1_threadlocalref_get__Ptr_GcStruct_objectLlT_Signed), #, descr=<Callr . i EF=1 OS=5>)
             p30 = getfield_gc_r(p29, descr=<FieldP pypy.interpreter.executioncontext.ExecutionContext.inst_topframeref .*>)
             p31 = force_token()
@@ -472,6 +468,7 @@
             i8 = getfield_gc_pure_i(p6, descr=<FieldS pypy.objspace.std.intobject.W_IntObject.inst_intval .*>)
             i10 = int_lt(i8, 5000)
             guard_true(i10, descr=...)
+            guard_not_invalidated?
             i11 = force_token()
             i13 = int_add(i8, 1)
             --TICK--
@@ -495,9 +492,9 @@
         assert log.result == 500
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+            guard_not_invalidated?
             i2 = int_lt(i0, i1)
             guard_true(i2, descr=...)
-            guard_not_invalidated?
             i3 = force_token()
             i4 = int_add(i0, 1)
             --TICK--
@@ -523,9 +520,9 @@
         assert log.result == 500
         loop, = log.loops_by_id('call')
         assert loop.match("""
+            guard_not_invalidated(..., descr=...)
             i65 = int_lt(i58, i29)
             guard_true(i65, descr=...)
-            guard_not_invalidated(..., descr=...)
             i66 = force_token()
             i67 = force_token()
             i69 = int_sub_ovf(1, i56)
diff --git a/pypy/module/pypyjit/test_pypy_c/test_containers.py b/pypy/module/pypyjit/test_pypy_c/test_containers.py
--- a/pypy/module/pypyjit/test_pypy_c/test_containers.py
+++ b/pypy/module/pypyjit/test_pypy_c/test_containers.py
@@ -61,9 +61,9 @@
         assert log.result == main(1000)
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+            guard_not_invalidated(descr=...)
             i8 = int_lt(i5, i7)
             guard_true(i8, descr=...)
-            guard_not_invalidated(descr=...)
             p10 = call_r(ConstClass(ll_str__IntegerR_SignedConst_Signed), i5, descr=<Callr . i EF=3>)
             guard_no_exception(descr=...)
             i12 = call_i(ConstClass(ll_strhash), p10, descr=<Calli . r EF=0>)
@@ -119,9 +119,9 @@
         assert log.result == main(1000)
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+            guard_not_invalidated(descr=...)
             i7 = int_lt(i5, i6)
             guard_true(i7, descr=...)
-            guard_not_invalidated(descr=...)
             i9 = int_add(i5, 1)
             --TICK--
             jump(..., descr=...)
diff --git a/pypy/module/pypyjit/test_pypy_c/test_exception.py b/pypy/module/pypyjit/test_pypy_c/test_exception.py
--- a/pypy/module/pypyjit/test_pypy_c/test_exception.py
+++ b/pypy/module/pypyjit/test_pypy_c/test_exception.py
@@ -35,9 +35,9 @@
         assert log.result == 0
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+        guard_not_invalidated(descr=...)
         i5 = int_is_true(i3)
         guard_true(i5, descr=...)
-        guard_not_invalidated(descr=...)
         --EXC-TICK--
         i12 = int_sub_ovf(i3, 1)
         guard_no_overflow(descr=...)
@@ -83,9 +83,9 @@
         assert log.result == 100000
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+            guard_not_invalidated(descr=...)
             i7 = int_lt(i4, i5)
             guard_true(i7, descr=...)
-            guard_not_invalidated(descr=...)
             --EXC-TICK--
             i14 = int_add(i4, 1)
             --TICK--
@@ -109,6 +109,7 @@
         assert log.result == 2001
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+            guard_not_invalidated(descr=...)
             i3 = int_lt(i1, i2)
             guard_true(i3, descr=...)
             i4 = int_add(i1, 1)
diff --git a/pypy/module/pypyjit/test_pypy_c/test_getframe.py b/pypy/module/pypyjit/test_pypy_c/test_getframe.py
--- a/pypy/module/pypyjit/test_pypy_c/test_getframe.py
+++ b/pypy/module/pypyjit/test_pypy_c/test_getframe.py
@@ -16,9 +16,9 @@
         assert log.result == 300
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+        guard_not_invalidated(descr=...)
         i54 = int_lt(i47, i28)
         guard_true(i54, descr=...)
-        guard_not_invalidated(descr=...)
         i55 = int_add(i47, 1)
         --TICK--
         jump(..., descr=...)
diff --git a/pypy/module/pypyjit/test_pypy_c/test_globals.py b/pypy/module/pypyjit/test_pypy_c/test_globals.py
--- a/pypy/module/pypyjit/test_pypy_c/test_globals.py
+++ b/pypy/module/pypyjit/test_pypy_c/test_globals.py
@@ -18,7 +18,6 @@
         assert loop.match_by_id("loadglobal", """
             p12 = getfield_gc_r(p10, descr=<FieldP .*W_DictMultiObject.inst_strategy .*>)
             guard_value(p12, ConstPtr(ptr13), descr=...)
-            guard_not_invalidated(descr=...)
             p19 = getfield_gc_r(ConstPtr(p17), descr=<FieldP .*W_DictMultiObject.inst_strategy .*>)
             guard_value(p19, ConstPtr(ptr20), descr=...)
         """)
diff --git a/pypy/module/pypyjit/test_pypy_c/test_import.py b/pypy/module/pypyjit/test_pypy_c/test_import.py
--- a/pypy/module/pypyjit/test_pypy_c/test_import.py
+++ b/pypy/module/pypyjit/test_pypy_c/test_import.py
@@ -15,7 +15,6 @@
         assert log.result == 500
         loop, = log.loops_by_id('import')
         assert loop.match_by_id('import', """
-            guard_not_invalidated(descr=...)
         """)
 
     def test_import_fast_path(self, tmpdir):
diff --git a/pypy/module/pypyjit/test_pypy_c/test_instance.py b/pypy/module/pypyjit/test_pypy_c/test_instance.py
--- a/pypy/module/pypyjit/test_pypy_c/test_instance.py
+++ b/pypy/module/pypyjit/test_pypy_c/test_instance.py
@@ -21,9 +21,9 @@
         assert log.result == 1000
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+            guard_not_invalidated(descr=...)
             i7 = int_lt(i5, i6)
             guard_true(i7, descr=...)
-            guard_not_invalidated(descr=...)
             i9 = int_add_ovf(i5, 2)
             guard_no_overflow(descr=...)
             --TICK--
@@ -46,9 +46,9 @@
         assert log.result == 1000
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+            guard_not_invalidated(descr=...)
             i9 = int_lt(i5, i6)
             guard_true(i9, descr=...)
-            guard_not_invalidated(descr=...)
             i10 = int_add(i5, 1)
             --TICK--
             jump(..., descr=...)
@@ -105,8 +105,7 @@
         # -------------------------------
         entry_bridge, = log.loops_by_filename(self.filepath, is_entry_bridge=True)
         ops = entry_bridge.ops_by_id('mutate', opcode='LOAD_ATTR')
-        assert log.opnames(ops) == ['guard_value', 'guard_not_invalidated',
-                                    'getfield_gc_i']
+        assert log.opnames(ops) == ['guard_value', 'getfield_gc_i']
         # the STORE_ATTR is folded away
         assert list(entry_bridge.ops_by_id('meth1', opcode='STORE_ATTR')) == []
         #
@@ -114,9 +113,9 @@
         # ----------------------
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+            guard_not_invalidated(descr=...)
             i58 = int_lt(i38, i31)
             guard_true(i58, descr=...)
-            guard_not_invalidated(descr=...)
             i59 = int_add_ovf(i57, 1)
             guard_no_overflow(descr=...)
             p60 = force_token()
@@ -153,7 +152,7 @@
         # -------------------------------
         entry_bridge, = log.loops_by_filename(self.filepath, is_entry_bridge=True)
         ops = entry_bridge.ops_by_id('mutate', opcode='LOAD_ATTR')
-        assert log.opnames(ops) == ['guard_value', 'guard_not_invalidated',
+        assert log.opnames(ops) == ['guard_value',
                                     'getfield_gc_r', 'guard_nonnull_class',
                                     'getfield_gc_r', 'guard_value', # type check on the attribute
                                     ]
@@ -164,9 +163,9 @@
         # ----------------------
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+            guard_not_invalidated(descr=...)
             i70 = int_lt(i58, i33)
             guard_true(i70, descr=...)
-            guard_not_invalidated(descr=...)
             p71 = getfield_gc_r(p64, descr=...)
             guard_value(p71, ConstPtr(ptr42), descr=...)
             p72 = force_token()
@@ -208,7 +207,6 @@
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match_by_id('loadattr1',
         '''
-        guard_not_invalidated(descr=...)
         i19 = call_i(ConstClass(ll_call_lookup_function), _, _, _, 0, descr=...)
         guard_no_exception(descr=...)
         i22 = int_lt(i19, 0)
@@ -235,7 +233,6 @@
         log = self.run(main, [], threshold=80)
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match_by_id("contains", """
-            guard_not_invalidated(descr=...)
             i11 = force_token()
             i12 = int_add(i5, 1)
         """)
@@ -274,9 +271,9 @@
         log = self.run(main, [])
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+            guard_not_invalidated(descr=...)
             i78 = int_lt(i72, 300)
             guard_true(i78, descr=...)
-            guard_not_invalidated(descr=...)
             i79 = force_token()
             i80 = force_token()
             i81 = int_add(i72, 1)
diff --git a/pypy/module/pypyjit/test_pypy_c/test_intbound.py b/pypy/module/pypyjit/test_pypy_c/test_intbound.py
--- a/pypy/module/pypyjit/test_pypy_c/test_intbound.py
+++ b/pypy/module/pypyjit/test_pypy_c/test_intbound.py
@@ -89,6 +89,7 @@
         assert log.result == (300, 300)
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+            guard_not_invalidated?
             i10 = int_lt(i8, i9)
             guard_true(i10, descr=...)
             i12 = int_add_ovf(i7, 1)
@@ -113,6 +114,7 @@
         assert log.result == 300
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+            guard_not_invalidated?
             i7 = int_lt(i5, 300)
             guard_true(i7, descr=...)
             i9 = int_sub_ovf(i5, 10)
@@ -139,6 +141,7 @@
         assert log.result == (300, 300)
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+            guard_not_invalidated?
             i10 = int_lt(i8, i9)
             guard_true(i10, descr=...)
             i12 = int_add_ovf(i8, 5)
@@ -168,6 +171,7 @@
         assert log.result == (300, 300)
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+            guard_not_invalidated?
             i10 = int_lt(i8, 300)
             guard_true(i10, descr=...)
             i12 = int_add(i8, 5)
@@ -202,6 +206,7 @@
         assert log.result == main(42, 300)
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+            guard_not_invalidated?
             i10 = int_lt(i8, 300)
             guard_true(i10, descr=...)
             i12 = int_eq(i8, 10)
@@ -229,9 +234,9 @@
         assert log.result == 300
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+            guard_not_invalidated?
             i8 = int_lt(i6, 300)
             guard_true(i8, descr=...)
-            guard_not_invalidated?
             i10 = int_lshift(i6, 1)
             i12 = int_add_ovf(i5, 1)
             guard_no_overflow(descr=...)
@@ -252,9 +257,9 @@
         assert log.result == 300*8
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+            guard_not_invalidated?
             i8 = int_lt(i6, 300)
             guard_true(i8, descr=...)
-            guard_not_invalidated?
             i10 = int_add_ovf(i5, 8)
             guard_no_overflow(descr=...)
             i12 = int_add(i6, 1)
diff --git a/pypy/module/pypyjit/test_pypy_c/test_math.py b/pypy/module/pypyjit/test_pypy_c/test_math.py
--- a/pypy/module/pypyjit/test_pypy_c/test_math.py
+++ b/pypy/module/pypyjit/test_pypy_c/test_math.py
@@ -17,9 +17,9 @@
         assert round(log.result, 6) == round(main(500), 6)
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+            guard_not_invalidated(descr=...)
             i2 = int_lt(i0, i1)
             guard_true(i2, descr=...)
-            guard_not_invalidated(descr=...)
             f1 = cast_int_to_float(i0)
             i3 = float_le(f1, 0.0)
             guard_false(i3, descr=...)
@@ -46,9 +46,9 @@
         assert round(log.result, 6) == round(main(500), 6)
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+            guard_not_invalidated(descr=...)
             i2 = int_lt(i0, i1)
             guard_true(i2, descr=...)
-            guard_not_invalidated(descr=...)
             f1 = cast_int_to_float(i0)
             i6 = --ISINF--(f1)
             guard_false(i6, descr=...)
@@ -75,9 +75,9 @@
         assert log.result == main(500)
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+            guard_not_invalidated(descr=...)
             i1 = int_gt(i0, 0)
             guard_true(i1, descr=...)
-            guard_not_invalidated(descr=...)
             f1 = cast_int_to_float(i0)
             i2 = float_eq(f1, inf)
             i3 = float_eq(f1, -inf)
@@ -102,7 +102,6 @@
         assert abs(log.result - main(500)) < 1e-9
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match_by_id("pow", """
-            guard_not_invalidated(descr=...)
             f38 = float_mul(f30, f30)
             f39 = float_sub(f30, f38)
         """)
diff --git a/pypy/module/pypyjit/test_pypy_c/test_micronumpy.py b/pypy/module/pypyjit/test_pypy_c/test_micronumpy.py
--- a/pypy/module/pypyjit/test_pypy_c/test_micronumpy.py
+++ b/pypy/module/pypyjit/test_pypy_c/test_micronumpy.py
@@ -105,6 +105,7 @@
                 guard_true(i94, descr=...)
             """
         assert loop.match("""
+            guard_not_invalidated(descr=...)
             i76 = int_lt(i71, 300)
             guard_true(i76, descr=...)
             i77 = int_ge(i71, i59)
@@ -142,6 +143,7 @@
                 guard_true(i98, descr=...)
             """
         assert loop.match("""
+            guard_not_invalidated(descr=...)
             i81 = int_lt(i76, 300)
             guard_true(i81, descr=...)
             i82 = int_ge(i76, i62)
@@ -150,7 +152,6 @@
             i84 = int_add(i58, i83)
             """ + alignment_check + """
             f85 = raw_load_f(i70, i84, descr=<ArrayF 8>)
-            guard_not_invalidated(descr=...)
             f86 = float_add(f74, f85)
             i87 = int_add(i76, 1)
             --TICK--
@@ -171,9 +172,9 @@
         assert log.result == 42.0
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+            guard_not_invalidated(descr=...)
             i86 = int_lt(i79, i45)
             guard_true(i86, descr=...)
-            guard_not_invalidated(descr=...)
             i88 = int_ge(i87, i59)
             guard_false(i88, descr=...)
             f90 = raw_load_f(i67, i89, descr=<ArrayF 8>)
@@ -202,6 +203,7 @@
         assert log.result == 42.0
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+            guard_not_invalidated(descr=...)
             i125 = int_lt(i117, i44)
             guard_true(i125, descr=...)
             i126 = int_lt(i117, i50)
@@ -231,13 +233,13 @@
         assert log.result == 42.0
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+            guard_not_invalidated(descr=...)
             i128 = int_lt(i120, i42)
             guard_true(i128, descr=...)
             i129 = int_lt(i120, i48)
             guard_true(i129, descr=...)
             i131 = int_mul(i120, i57)
             i132 = int_add(i53, i131)
-            guard_not_invalidated(descr=...)
             raw_store(i103, i132, 42.000000, descr=<ArrayF 8>)
             i153 = int_add(i120, 1)
             i154 = getfield_raw_i(#, descr=<FieldS pypysig_long_struct.c_value 0>)
diff --git a/pypy/module/pypyjit/test_pypy_c/test_min_max.py b/pypy/module/pypyjit/test_pypy_c/test_min_max.py
--- a/pypy/module/pypyjit/test_pypy_c/test_min_max.py
+++ b/pypy/module/pypyjit/test_pypy_c/test_min_max.py
@@ -14,9 +14,9 @@
         assert log.result == 300*3000
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+            guard_not_invalidated(descr=...)
             i7 = int_lt(i4, 300)
             guard_true(i7, descr=...)
-            guard_not_invalidated(descr=...)
             i9 = int_add_ovf(i5, 3000)
             guard_no_overflow(descr=...)
             i11 = int_add(i4, 1)
diff --git a/pypy/module/pypyjit/test_pypy_c/test_misc.py b/pypy/module/pypyjit/test_pypy_c/test_misc.py
--- a/pypy/module/pypyjit/test_pypy_c/test_misc.py
+++ b/pypy/module/pypyjit/test_pypy_c/test_misc.py
@@ -23,6 +23,7 @@
         # to contain the very same operations
         loop0, loop1 = log.loops_by_filename(self.filepath)
         expected = """
+            guard_not_invalidated(descr=...)
             i9 = int_le(i7, i8)
             guard_true(i9, descr=...)
             i11 = int_add_ovf(i7, 1)
@@ -50,6 +51,7 @@
         assert log.result == 5040
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+            guard_not_invalidated(descr=...)
             i7 = int_gt(i4, 1)
             guard_true(i7, descr=...)
             i8 = int_mul_ovf(i5, i4)
@@ -63,6 +65,7 @@
         assert log.result == 15511210043330985984000000L
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+            guard_not_invalidated(descr=...)
             i7 = int_gt(i4, 1)
             guard_true(i7, descr=...)
             p11 = call_r(ConstClass(rbigint.int_mul), p5, i4, descr=...)
@@ -84,6 +87,7 @@
         assert log.result == 1000.0
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+            guard_not_invalidated(descr=...)
             i9 = float_lt(f5, f7)
             guard_true(i9, descr=...)
             f10 = float_add(f8, f5)
@@ -110,9 +114,9 @@
         assert log.result == 4000
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+            guard_not_invalidated(descr=...)
             i12 = int_is_true(i4)
             guard_true(i12, descr=...)
-            guard_not_invalidated(descr=...)
             i10p = getfield_gc_pure_i(p10, descr=...)
             i10 = int_mul_ovf(2, i10p)
             guard_no_overflow(descr=...)
@@ -142,13 +146,12 @@
         assert log.result == 1000 * 999 / 2
         loop, = log.loops_by_filename(self.filepath)
         assert loop.match("""
+        guard_not_invalidated(descr=...)
         i15 = int_lt(i10, i11)
         guard_true(i15, descr=...)
         i17 = int_add(i10, 1)
         i18 = force_token()
         setfield_gc(p9, i17, descr=<.* .*W_XRangeIterator.inst_current .*>)
-        guard_not_invalidated(descr=...)
-        i84 = int_sub(i14, 1)
         i21 = int_lt(i10, 0)
         guard_false(i21, descr=...)
         i22 = int_lt(i10, i14)


More information about the pypy-commit mailing list