[pypy-commit] pypy optresult: fix the parsing stuff, some low hanging fruit

fijal noreply at buildbot.pypy.org
Wed Dec 17 21:04:48 CET 2014


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: optresult
Changeset: r74998:6f3c6ecaa793
Date: 2014-12-17 22:04 +0200
http://bitbucket.org/pypy/pypy/changeset/6f3c6ecaa793/

Log:	fix the parsing stuff, some low hanging fruit

diff too long, truncating to 2000 out of 3207 lines

diff --git a/rpython/jit/metainterp/optimizeopt/pure.py b/rpython/jit/metainterp/optimizeopt/pure.py
--- a/rpython/jit/metainterp/optimizeopt/pure.py
+++ b/rpython/jit/metainterp/optimizeopt/pure.py
@@ -83,9 +83,7 @@
         # replace CALL_PURE with just CALL
         args = op.getarglist()
         opnum = OpHelpers.call_for_descr(op.getdescr())
-        newop = ResOperation(opnum, args, op.getdescr())
-        newop.source_op = op
-        self.getvalue(op).box = newop
+        newop = self.optimizer.replace_op_with(op, opnum)
         self.emit_operation(newop)
     optimize_CALL_PURE_R = optimize_CALL_PURE_I
     optimize_CALL_PURE_F = optimize_CALL_PURE_I
diff --git a/rpython/jit/metainterp/optimizeopt/rewrite.py b/rpython/jit/metainterp/optimizeopt/rewrite.py
--- a/rpython/jit/metainterp/optimizeopt/rewrite.py
+++ b/rpython/jit/metainterp/optimizeopt/rewrite.py
@@ -420,7 +420,8 @@
             if val.box.same_constant(CONST_0):
                 self.last_emitted_operation = REMOVED
                 return
-            op = op.copy_and_change(rop.CALL, args=op.getarglist()[1:])
+            opnum = OpHelpers.call_for_type(op)
+            op = op.copy_and_change(opnum, args=op.getarglist()[1:])
         self.emit_operation(op)
 
     def _optimize_nullness(self, op, box, expect_nonnull):
diff --git a/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py b/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py
@@ -781,7 +781,7 @@
         py.test.skip("implement me")
         ops = """
         []
-        i0 = escape()
+        i0 = escape_i()
         i7 = uint_lt(i0, i0)
         guard_false(i7) []
         i8 = uint_le(i0, i0)
@@ -794,7 +794,7 @@
         """
         expected = """
         []
-        i0 = escape()
+        i0 = escape_i()
         jump()
         """
         self.optimize_loop(ops, expected)
@@ -2263,18 +2263,14 @@
         setfield_gc(p1, i2, descr=valuedescr)
         jump(p1, i1, i2)
         """
-        preamble = """
+        expected = """
         [p1, i1, i2]
         setfield_gc(p1, i2, descr=valuedescr)
         jump(p1, i1, i2)
         """
-        expected = """
-        [p1, i1, i2]
-        jump(p1, i1, i2)
-        """
         # in this case, all setfields are removed, because we can prove
         # that in the loop it will always have the same value
-        self.optimize_loop(ops, expected, preamble)
+        self.optimize_loop(ops, expected)
 
     def test_duplicate_setfield_1(self):
         ops = """
@@ -2614,7 +2610,7 @@
         ops = """
         [p1, p2]
         setarrayitem_gc(p1, 0, p2, descr=arraydescr2)
-        p3 = getarrayitem_gc(p1, 0, descr=arraydescr2)
+        p3 = getarrayitem_gc_r(p1, 0, descr=arraydescr2)
         escape_n(p3)
         jump(p1, p3)
         """
@@ -2655,9 +2651,9 @@
         setarrayitem_gc(p1, i1, p2, descr=arraydescr2)
         setarrayitem_gc(p1, 0, p3, descr=arraydescr2)
         setarrayitem_gc(p1, 1, p4, descr=arraydescr2)
-        p5 = getarrayitem_gc(p1, i1, descr=arraydescr2)
-        p6 = getarrayitem_gc(p1, 0, descr=arraydescr2)
-        p7 = getarrayitem_gc(p1, 1, descr=arraydescr2)
+        p5 = getarrayitem_gc_r(p1, i1, descr=arraydescr2)
+        p6 = getarrayitem_gc_r(p1, 0, descr=arraydescr2)
+        p7 = getarrayitem_gc_r(p1, 1, descr=arraydescr2)
         escape_n(p5)
         escape_n(p6)
         escape_n(p7)
@@ -2668,7 +2664,7 @@
         setarrayitem_gc(p1, i1, p2, descr=arraydescr2)
         setarrayitem_gc(p1, 0, p3, descr=arraydescr2)
         setarrayitem_gc(p1, 1, p4, descr=arraydescr2)
-        p5 = getarrayitem_gc(p1, i1, descr=arraydescr2)
+        p5 = getarrayitem_gc_r(p1, i1, descr=arraydescr2)
         escape_n(p5)
         escape_n(p3)
         escape_n(p4)
@@ -2679,9 +2675,9 @@
     def test_getarrayitem_pure_does_not_invalidate(self):
         ops = """
         [p1, p2]
-        p3 = getarrayitem_gc(p1, 0, descr=arraydescr2)
-        i4 = getfield_gc_pure(ConstPtr(myptr), descr=valuedescr)
-        p5 = getarrayitem_gc(p1, 0, descr=arraydescr2)
+        p3 = getarrayitem_gc_r(p1, 0, descr=arraydescr2)
+        i4 = getfield_gc_pure_i(ConstPtr(myptr), descr=valuedescr)
+        p5 = getarrayitem_gc_r(p1, 0, descr=arraydescr2)
         escape_n(p3)
         escape_n(i4)
         escape_n(p5)
@@ -2689,7 +2685,7 @@
         """
         expected = """
         [p1, p2]
-        p3 = getarrayitem_gc(p1, 0, descr=arraydescr2)
+        p3 = getarrayitem_gc_r(p1, 0, descr=arraydescr2)
         escape_n(p3)
         escape_n(5)
         escape_n(p3)
@@ -2702,8 +2698,8 @@
         [p1, p2, p3, p4, i1]
         setarrayitem_gc(p1, 0, p3, descr=arraydescr2)
         setarrayitem_gc(p2, 1, p4, descr=arraydescr2)
-        p5 = getarrayitem_gc(p1, 0, descr=arraydescr2)
-        p6 = getarrayitem_gc(p2, 1, descr=arraydescr2)
+        p5 = getarrayitem_gc_r(p1, 0, descr=arraydescr2)
+        p6 = getarrayitem_gc_r(p2, 1, descr=arraydescr2)
         escape_n(p5)
         escape_n(p6)
         jump(p1, p2, p3, p4, i1)
@@ -2751,7 +2747,7 @@
     def test_bug_1(self):
         ops = """
         [i0, p1]
-        p4 = getfield_gc(p1, descr=nextdescr)
+        p4 = getfield_gc_r(p1, descr=nextdescr)
         guard_nonnull(p4) []
         escape_n(p4)
         #
@@ -2773,7 +2769,7 @@
     def test_bug_2(self):
         ops = """
         [i0, p1]
-        p4 = getarrayitem_gc(p1, 0, descr=arraydescr2)
+        p4 = getarrayitem_gc_r(p1, 0, descr=arraydescr2)
         guard_nonnull(p4) []
         escape_n(p4)
         #
@@ -3580,7 +3576,7 @@
         [p1, i1, p2, i2]
         setfield_gc(p1, i1, descr=valuedescr)
         setfield_gc(p2, i2, descr=adescr)
-        i3 = call(i1, descr=writeadescr)
+        i3 = call_i(i1, descr=writeadescr)
         setfield_gc(p1, i3, descr=valuedescr)
         setfield_gc(p2, i3, descr=adescr)
         jump(p1, i1, p2, i2)
@@ -3588,7 +3584,7 @@
         expected = """
         [p1, i1, p2, i2]
         setfield_gc(p2, i2, descr=adescr)
-        i3 = call(i1, descr=writeadescr)
+        i3 = call_i(i1, descr=writeadescr)
         setfield_gc(p1, i3, descr=valuedescr)
         setfield_gc(p2, i3, descr=adescr)
         jump(p1, i1, p2, i2)
@@ -3600,7 +3596,7 @@
         [p1, i1, p2, i2]
         setfield_gc(p1, i1, descr=valuedescr)
         setfield_gc(p2, i2, descr=adescr)
-        i3 = call(i1, descr=plaincalldescr)
+        i3 = call_i(i1, descr=plaincalldescr)
         setfield_gc(p1, i3, descr=valuedescr)
         setfield_gc(p2, i3, descr=adescr)
         jump(p1, i1, p2, i2)
@@ -3611,14 +3607,14 @@
         ops = '''
         [p1, i1, i4]
         setfield_gc(p1, i1, descr=valuedescr)
-        i3 = call_assembler(i1, descr=asmdescr)
+        i3 = call_assembler_i(i1, descr=asmdescr)
         setfield_gc(p1, i3, descr=valuedescr)
         jump(p1, i4, i3)
         '''
         preamble = '''
         [p1, i1, i4]
         setfield_gc(p1, i1, descr=valuedescr)
-        i3 = call_assembler(i1, descr=asmdescr)
+        i3 = call_assembler_i(i1, descr=asmdescr)
         setfield_gc(p1, i3, descr=valuedescr)
         #i143 = same_as(i3) # Should be killed by backend
         jump(p1, i4, i3)
@@ -3629,7 +3625,7 @@
         ops = '''
         [p1, i1, i4]
         setfield_gc(p1, i1, descr=valuedescr)
-        i3 = call_assembler(i1, descr=asmdescr)
+        i3 = call_assembler_i(i1, descr=asmdescr)
         setfield_gc(p1, i1, descr=valuedescr)
         jump(p1, i4, i3)
         '''
@@ -3640,7 +3636,7 @@
         ops = '''
         [p1, i1, i4]
         setfield_gc(p1, i1, descr=valuedescr)
-        i3 = call_pure(p1, descr=plaincalldescr)
+        i3 = call_pure_i(p1, descr=plaincalldescr)
         setfield_gc(p1, i3, descr=valuedescr)
         jump(p1, i4, i3)
         '''
@@ -3652,7 +3648,7 @@
         preamble = '''
         [p1, i1, i4]
         setfield_gc(p1, i1, descr=valuedescr)
-        i3 = call(p1, descr=plaincalldescr)
+        i3 = call_i(p1, descr=plaincalldescr)
         setfield_gc(p1, i3, descr=valuedescr)
         #i148 = same_as(i3)
         #i147 = same_as(i3)
@@ -3665,7 +3661,7 @@
         ops = '''
         [p1, i1, i4]
         setfield_gc(p1, i1, descr=valuedescr)
-        i3 = call_pure(p1, descr=plaincalldescr)
+        i3 = call_pure_i(p1, descr=plaincalldescr)
         setfield_gc(p1, i1, descr=valuedescr)
         jump(p1, i4, i3)
         '''
@@ -3677,7 +3673,7 @@
         preamble = '''
         [p1, i1, i4]
         setfield_gc(p1, i1, descr=valuedescr)
-        i3 = call(p1, descr=plaincalldescr)
+        i3 = call_i(p1, descr=plaincalldescr)
         setfield_gc(p1, i1, descr=valuedescr)
         #i151 = same_as(i3)
         jump(p1, i4, i3)
@@ -3691,15 +3687,15 @@
         [i0, i1, i2]
         escape_n(i1)
         escape_n(i2)
-        i3 = call_pure(123456, 4, 5, 6, descr=plaincalldescr)
-        i4 = call_pure(123456, 4, i0, 6, descr=plaincalldescr)
+        i3 = call_pure_i(123456, 4, 5, 6, descr=plaincalldescr)
+        i4 = call_pure_i(123456, 4, i0, 6, descr=plaincalldescr)
         jump(i0, i3, i4)
         '''
         preamble = '''
         [i0, i1, i2]
         escape_n(i1)
         escape_n(i2)
-        i4 = call(123456, 4, i0, 6, descr=plaincalldescr)
+        i4 = call_i(123456, 4, i0, 6, descr=plaincalldescr)
         #i153 = same_as(i4)
         jump(i0, i4)
         '''
@@ -3719,9 +3715,9 @@
         [i0, i1, i2]
         escape_n(i1)
         escape_n(i2)
-        i3 = call_pure(123456, 4, 5, 6, descr=plaincalldescr)
+        i3 = call_pure_i(123456, 4, 5, 6, descr=plaincalldescr)
         guard_no_exception() []
-        i4 = call_pure(123456, 4, i0, 6, descr=plaincalldescr)
+        i4 = call_pure_i(123456, 4, i0, 6, descr=plaincalldescr)
         guard_no_exception() []
         jump(i0, i3, i4)
         '''
@@ -3729,7 +3725,7 @@
         [i0, i1, i2]
         escape_n(i1)
         escape_n(i2)
-        i4 = call(123456, 4, i0, 6, descr=plaincalldescr)
+        i4 = call_i(123456, 4, i0, 6, descr=plaincalldescr)
         guard_no_exception() []
         #i155 = same_as(i4)
         jump(i0, i4)
@@ -3747,7 +3743,7 @@
         #      both in the preamble and in the peeled loop
         ops = '''
         [p1, i1, i2]
-        p2 = call_pure(0, p1, i1, i2, descr=strslicedescr)
+        p2 = call_pure_i(0, p1, i1, i2, descr=strslicedescr)
         escape_n(p2)
         jump(p1, i1, i2)
         '''
@@ -3819,7 +3815,7 @@
         #
         p2 = virtual_ref(p1, 3)
         setfield_gc(p0, p2, descr=nextdescr)
-        call_may_force(i1, descr=mayforcevirtdescr)
+        call_may_force_n(i1, descr=mayforcevirtdescr)
         guard_not_forced() [i1]
         virtual_ref_finish(p2, p1)
         setfield_gc(p0, NULL, descr=nextdescr)
@@ -3834,7 +3830,7 @@
         setfield_gc(p2, p3, descr=virtualtokendescr)
         setfield_gc(p0, p2, descr=nextdescr)
         #
-        call_may_force(i1, descr=mayforcevirtdescr)
+        call_may_force_n(i1, descr=mayforcevirtdescr)
         guard_not_forced() [i1]
         #
         setfield_gc(p0, NULL, descr=nextdescr)
@@ -3859,7 +3855,7 @@
         #
         p2 = virtual_ref(p1, 2)
         setfield_gc(p0, p2, descr=nextdescr)
-        call_may_force(i1, descr=mayforcevirtdescr)
+        call_may_force_n(i1, descr=mayforcevirtdescr)
         guard_not_forced(descr=fdescr) [p2, p1]
         virtual_ref_finish(p2, p1)
         setfield_gc(p0, NULL, descr=nextdescr)
@@ -3874,7 +3870,7 @@
         setfield_gc(p2, p3, descr=virtualtokendescr)
         setfield_gc(p0, p2, descr=nextdescr)
         #
-        call_may_force(i1, descr=mayforcevirtdescr)
+        call_may_force_n(i1, descr=mayforcevirtdescr)
         guard_not_forced(descr=fdescr2) [p2, i1]
         #
         setfield_gc(p0, NULL, descr=nextdescr)
@@ -3905,7 +3901,7 @@
         #
         p2 = virtual_ref(p1, 2)
         setfield_gc(p0, p2, descr=refdescr)
-        call(i1, descr=nonwritedescr)
+        call_n(i1, descr=nonwritedescr)
         guard_no_exception(descr=fdescr) [p2, p1]
         virtual_ref_finish(p2, p1)
         setfield_gc(p0, NULL, descr=refdescr)
@@ -3915,7 +3911,7 @@
         preamble = """
         [p0, i1]
         p3 = force_token()
-        call(i1, descr=nonwritedescr)
+        call_n(i1, descr=nonwritedescr)
         guard_no_exception(descr=fdescr) [p3, i1, p0]
         setfield_gc(p0, NULL, descr=refdescr)
         escape_n()
@@ -3924,7 +3920,7 @@
         expected = """
         [p0, i1]
         p3 = force_token()
-        call(i1, descr=nonwritedescr)
+        call_n(i1, descr=nonwritedescr)
         guard_no_exception(descr=fdescr2) [p3, i1, p0]
         setfield_gc(p0, NULL, descr=refdescr)
         escape_n()
@@ -3950,7 +3946,7 @@
         p2 = virtual_ref(p1, 7)
         escape_n(p2)
         virtual_ref_finish(p2, p1)
-        call_may_force(i1, descr=mayforcevirtdescr)
+        call_may_force_n(i1, descr=mayforcevirtdescr)
         guard_not_forced() []
         jump(i1)
         """
@@ -3964,7 +3960,7 @@
         p1 = new_with_vtable(ConstClass(node_vtable))
         setfield_gc(p2, p1, descr=virtualforceddescr)
         setfield_gc(p2, NULL, descr=virtualtokendescr)
-        call_may_force(i1, descr=mayforcevirtdescr)
+        call_may_force_n(i1, descr=mayforcevirtdescr)
         guard_not_forced() []
         jump(i1)
         """
@@ -3976,7 +3972,7 @@
         p2 = virtual_ref(p1, 23)
         escape_n(p2)
         virtual_ref_finish(p2, p1)
-        call_may_force(i1, descr=mayforcevirtdescr)
+        call_may_force_n(i1, descr=mayforcevirtdescr)
         guard_not_forced() [i1]
         jump(i1, p1)
         """
@@ -3989,7 +3985,7 @@
         escape_n(p2)
         setfield_gc(p2, p1, descr=virtualforceddescr)
         setfield_gc(p2, NULL, descr=virtualtokendescr)
-        call_may_force(i1, descr=mayforcevirtdescr)
+        call_may_force_n(i1, descr=mayforcevirtdescr)
         guard_not_forced() [i1]
         jump(i1, p1)
         """
@@ -4004,7 +4000,7 @@
         setarrayitem_gc(p1, 1, 1, descr=arraydescr)
         p2 = new_array(3, descr=arraydescr)
         setarrayitem_gc(p2, 1, 3, descr=arraydescr)
-        call(0, p1, p2, 1, 1, 2, descr=arraycopydescr)
+        call_n(0, p1, p2, 1, 1, 2, descr=arraycopydescr)
         i2 = getarrayitem_gc_i(p2, 1, descr=arraydescr)
         jump(i2)
         '''
@@ -4021,7 +4017,7 @@
         p2 = new_array(3, descr=arraydescr)
         setarrayitem_gc(p1, 0, i0, descr=arraydescr)
         setarrayitem_gc(p2, 0, 3, descr=arraydescr)
-        call(0, p1, p2, 1, 1, 2, descr=arraycopydescr)
+        call_n(0, p1, p2, 1, 1, 2, descr=arraycopydescr)
         i2 = getarrayitem_gc_i(p2, 0, descr=arraydescr)
         jump(i2)
         '''
@@ -4038,7 +4034,7 @@
         p2 = new_array(3, descr=arraydescr)
         setarrayitem_gc(p1, 2, 10, descr=arraydescr)
         setarrayitem_gc(p2, 2, 13, descr=arraydescr)
-        call(0, p1, p2, 0, 0, 3, descr=arraycopydescr)
+        call_n(0, p1, p2, 0, 0, 3, descr=arraycopydescr)
         escape_n(p2)
         jump()
         '''
@@ -4057,7 +4053,7 @@
         ops = '''
         [p1]
         p0 = new_array(0, descr=arraydescr)
-        call(0, p0, p1, 0, 0, 0, descr=arraycopydescr)
+        call_n(0, p0, p1, 0, 0, 0, descr=arraycopydescr)
         jump(p1)
         '''
         expected = '''
@@ -4074,7 +4070,7 @@
         setarrayitem_gc(p1, 2, 10, descr=arraydescr)
         setarrayitem_gc(p2, 2, 13, descr=arraydescr)
         escape_n(p2)
-        call(0, p1, p2, 0, 0, 3, descr=arraycopydescr)
+        call_n(0, p1, p2, 0, 0, 3, descr=arraycopydescr)
         escape_n(p2)
         jump()
         '''
@@ -4099,7 +4095,7 @@
         setarrayitem_gc(p1, 2, 10, descr=arraydescr)
         setarrayitem_gc(p2, 2, 13, descr=arraydescr)
         escape_n(p2)
-        call(0, p1, p2, 0, 0, 10, descr=arraycopydescr)
+        call_n(0, p1, p2, 0, 0, 10, descr=arraycopydescr)
         escape_n(p2)
         jump()
         '''
@@ -4110,7 +4106,7 @@
         escape_n(p2)
         p1 = new_array(10, descr=arraydescr)
         setarrayitem_gc(p1, 2, 10, descr=arraydescr)
-        call(0, p1, p2, 0, 0, 10, descr=arraycopydescr)
+        call_n(0, p1, p2, 0, 0, 10, descr=arraycopydescr)
         escape_n(p2)
         jump()
         '''
@@ -4713,7 +4709,7 @@
     def test_framestackdepth_overhead(self):
         ops = """
         [p0, i22]
-        i1 = getfield_gc(p0, descr=valuedescr)
+        i1 = getfield_gc_i(p0, descr=valuedescr)
         i2 = int_gt(i1, i22)
         guard_false(i2) []
         i3 = int_add(i1, 1)
@@ -4738,8 +4734,8 @@
     def test_setgetfield_raw(self):
         ops = """
         [p4, p7, i30]
-        p16 = getfield_gc(p4, descr=valuedescr)
-        p17 = getarrayitem_gc(p4, 1, descr=arraydescr)
+        p16 = getfield_gc_r(p4, descr=valuedescr)
+        p17 = getarrayitem_gc_r(p4, 1, descr=arraydescr)
         guard_value(p16, ConstPtr(myptr), descr=<Guard3>) []
         i1 = getfield_raw(p7, descr=nextdescr)
         i2 = int_add(i1, i30)
@@ -4760,10 +4756,10 @@
     def test_setgetarrayitem_raw(self):
         ops = """
         [p4, p7, i30]
-        p16 = getfield_gc(p4, descr=valuedescr)
+        p16 = getfield_gc_r(p4, descr=valuedescr)
         guard_value(p16, ConstPtr(myptr), descr=<Guard3>) []
-        p17 = getarrayitem_gc(p4, 1, descr=arraydescr)
-        i1 = getarrayitem_raw(p7, 1, descr=arraydescr)
+        p17 = getarrayitem_gc_r(p4, 1, descr=arraydescr)
+        i1 = getarrayitem_raw_i(p7, 1, descr=arraydescr)
         i2 = int_add(i1, i30)
         setarrayitem_raw(p7, 1, 7, descr=arraydescr)
         setarrayitem_raw(p7, 1, i2, descr=arraydescr)
@@ -4771,7 +4767,7 @@
         """
         expected = """
         [p4, p7, i30]
-        i1 = getarrayitem_raw(p7, 1, descr=arraydescr)
+        i1 = getarrayitem_raw_i(p7, 1, descr=arraydescr)
         i2 = int_add(i1, i30)
         setarrayitem_raw(p7, 1, 7, descr=arraydescr)
         setarrayitem_raw(p7, 1, i2, descr=arraydescr)
@@ -4782,14 +4778,14 @@
     def test_pure(self):
         ops = """
         [p42]
-        p53 = getfield_gc(ConstPtr(myptr), descr=nextdescr)
-        p59 = getfield_gc_pure(p53, descr=valuedescr)
-        i61 = call(1, p59, descr=nonwritedescr)
+        p53 = getfield_gc_r(ConstPtr(myptr), descr=nextdescr)
+        p59 = getfield_gc_pure_r(p53, descr=valuedescr)
+        i61 = call_i(1, p59, descr=nonwritedescr)
         jump(p42)
         """
         expected = """
         [p42, p59]
-        i61 = call(1, p59, descr=nonwritedescr)
+        i61 = call_i(1, p59, descr=nonwritedescr)
         jump(p42, p59)
 
         """
@@ -4801,7 +4797,7 @@
         ops = """
         [p3]
         p1 = escape_r()
-        p2 = getfield_gc_pure(p1, descr=nextdescr)
+        p2 = getfield_gc_pure_r(p1, descr=nextdescr)
         setfield_gc(p1, p3, descr=nextdescr)
         jump(p3)
         """
@@ -4811,7 +4807,7 @@
         ops = """
         [p3]
         p1 = escape_r()
-        p2 = getfield_gc_pure(p1, descr=nextdescr)
+        p2 = getfield_gc_pure_r(p1, descr=nextdescr)
         setfield_gc(p1, p3, descr=otherdescr)
         escape_n(p2)
         jump(p3)
@@ -4819,7 +4815,7 @@
         expected = """
         [p3]
         p1 = escape_r()
-        p2 = getfield_gc_pure(p1, descr=nextdescr)
+        p2 = getfield_gc_pure_r(p1, descr=nextdescr)
         setfield_gc(p1, p3, descr=otherdescr)
         escape_n(p2)
         jump(p3)
@@ -4830,7 +4826,7 @@
         ops = """
         []
         p1 = escape_r()
-        p2 = getfield_gc_pure(p1, descr=nextdescr)
+        p2 = getfield_gc_pure_r(p1, descr=nextdescr)
         p3 = escape_r()
         setfield_gc(p3, p1, descr=nextdescr)
         jump()
@@ -4840,34 +4836,34 @@
     def test_getfield_guard_const(self):
         ops = """
         [p0]
-        p20 = getfield_gc(p0, descr=nextdescr)
+        p20 = getfield_gc_r(p0, descr=nextdescr)
         guard_nonnull(p20) []
         guard_class(p20, ConstClass(node_vtable)) []
         guard_class(p20, ConstClass(node_vtable)) []
-        p23 = getfield_gc(p20, descr=valuedescr)
+        p23 = getfield_gc_r(p20, descr=valuedescr)
         guard_isnull(p23) []
         guard_class(p20, ConstClass(node_vtable)) []
         guard_value(p20, ConstPtr(myptr)) []
 
-        p37 = getfield_gc(p0, descr=nextdescr)
+        p37 = getfield_gc_r(p0, descr=nextdescr)
         guard_nonnull(p37) []
         guard_class(p37, ConstClass(node_vtable)) []
         guard_class(p37, ConstClass(node_vtable)) []
-        p40 = getfield_gc(p37, descr=valuedescr)
+        p40 = getfield_gc_r(p37, descr=valuedescr)
         guard_isnull(p40) []
         guard_class(p37, ConstClass(node_vtable)) []
         guard_value(p37, ConstPtr(myptr)) []
 
-        p64 = call_may_force(p23, p40, descr=plaincalldescr)
+        p64 = call_may_force_r(p23, p40, descr=plaincalldescr)
         jump(p0)
         """
         expected = """
         [p0]
-        p20 = getfield_gc(p0, descr=nextdescr)
+        p20 = getfield_gc_r(p0, descr=nextdescr)
         guard_value(p20, ConstPtr(myptr)) []
-        p23 = getfield_gc(p20, descr=valuedescr)
+        p23 = getfield_gc_r(p20, descr=valuedescr)
         guard_isnull(p23) []
-        p64 = call_may_force(NULL, NULL, descr=plaincalldescr)
+        p64 = call_may_force_r(NULL, NULL, descr=plaincalldescr)
         jump(p0)
         """
         self.optimize_loop(ops, expected, expected)
@@ -4875,34 +4871,34 @@
     def test_getfield_guard_const_preamble(self):
         ops = """
         [p0]
-        p01 = getfield_gc(p0, descr=nextdescr)
-        p02 = getfield_gc(p01, descr=valuedescr)
+        p01 = getfield_gc_r(p0, descr=nextdescr)
+        p02 = getfield_gc_r(p01, descr=valuedescr)
         guard_value(p01, ConstPtr(myptr)) []
-        p11 = getfield_gc(p0, descr=nextdescr)
-        p12 = getfield_gc(p11, descr=valuedescr)
+        p11 = getfield_gc_r(p0, descr=nextdescr)
+        p12 = getfield_gc_r(p11, descr=valuedescr)
         guard_value(p11, ConstPtr(myptr)) []
-        p64 = call_may_force(p02, p12, descr=plaincalldescr)
-
-        p21 = getfield_gc(p0, descr=nextdescr)
-        p22 = getfield_gc(p21, descr=valuedescr)
+        p64 = call_may_force_r(p02, p12, descr=plaincalldescr)
+
+        p21 = getfield_gc_r(p0, descr=nextdescr)
+        p22 = getfield_gc_r(p21, descr=valuedescr)
         guard_value(p21, ConstPtr(myptr)) []
-        p31 = getfield_gc(p0, descr=nextdescr)
-        p32 = getfield_gc(p31, descr=valuedescr)
+        p31 = getfield_gc_r(p0, descr=nextdescr)
+        p32 = getfield_gc_r(p31, descr=valuedescr)
         guard_value(p31, ConstPtr(myptr)) []
-        p65 = call_may_force(p22, p32, descr=plaincalldescr)
+        p65 = call_may_force_r(p22, p32, descr=plaincalldescr)
         jump(p0)
         """
         expected = """
         [p0]
-        p01 = getfield_gc(p0, descr=nextdescr)
-        p02 = getfield_gc(p01, descr=valuedescr)
+        p01 = getfield_gc_r(p0, descr=nextdescr)
+        p02 = getfield_gc_r(p01, descr=valuedescr)
         guard_value(p01, ConstPtr(myptr)) []
-        p64 = call_may_force(p02, p02, descr=plaincalldescr)
-
-        p21 = getfield_gc(p0, descr=nextdescr)
-        p22 = getfield_gc(p21, descr=valuedescr)
+        p64 = call_may_force_r(p02, p02, descr=plaincalldescr)
+
+        p21 = getfield_gc_r(p0, descr=nextdescr)
+        p22 = getfield_gc_r(p21, descr=valuedescr)
         guard_value(p21, ConstPtr(myptr)) []
-        p65 = call_may_force(p22, p22, descr=plaincalldescr)
+        p65 = call_may_force_r(p22, p22, descr=plaincalldescr)
         jump(p0)
         """
         self.optimize_loop(ops, expected, expected)
@@ -4946,7 +4942,7 @@
     def test_bound_and(self):
         ops = """
         []
-        i0 = escape()
+        i0 = escape_i()
         i1 = int_and(i0, 255)
         i2 = int_lt(i1, 500)
         guard_true(i2) []
@@ -4976,7 +4972,7 @@
         """
         expected = """
         []
-        i0 = escape()
+        i0 = escape_i()
         i1 = int_and(i0, 255)
         i12 = int_lt(i1, 100)
         guard_true(i12) []
@@ -5351,8 +5347,8 @@
     def test_bound_eq(self):
         ops = """
         []
-        i0 = escape()
-        i1 = escape()
+        i0 = escape_i()
+        i1 = escape_i()
         i2 = int_le(i0, 4)
         guard_true(i2) []
         i3 = int_eq(i0, i1)
@@ -5363,8 +5359,8 @@
         """
         expected = """
         []
-        i0 = escape()
-        i1 = escape()
+        i0 = escape_i()
+        i1 = escape_i()
         i2 = int_le(i0, 4)
         guard_true(i2) []
         i3 = int_eq(i0, i1)
@@ -5376,19 +5372,19 @@
     def test_bound_eq_const(self):
         ops = """
         []
-        i0 = escape()
+        i0 = escape_i()
         i1 = int_eq(i0, 7)
         guard_true(i1) []
         i2 = int_add(i0, 3)
-        escape(i2)
+        escape_n(i2)
         jump()
         """
         expected = """
         []
-        i0 = escape()
+        i0 = escape_i()
         i1 = int_eq(i0, 7)
         guard_true(i1) []
-        escape(10)
+        escape_n(10)
         jump()
         """
         self.optimize_loop(ops, expected)
@@ -5615,7 +5611,7 @@
     def test_bound_backpropagate_int_signext(self):
         ops = """
         []
-        i0 = escape()
+        i0 = escape_i()
         i1 = int_signext(i0, 1)
         i2 = int_eq(i0, i1)
         guard_true(i2) []
@@ -5627,7 +5623,7 @@
         """
         expected = """
         []
-        i0 = escape()
+        i0 = escape_i()
         i1 = int_signext(i0, 1)
         i2 = int_eq(i0, i1)
         guard_true(i2) []
@@ -5638,7 +5634,7 @@
     def test_bound_backpropagate_int_signext_2(self):
         ops = """
         []
-        i0 = escape()
+        i0 = escape_i()
         i1 = int_signext(i0, 1)
         i2 = int_eq(i0, i1)
         guard_true(i2) []
@@ -5761,9 +5757,9 @@
         guard_no_overflow() []
         i4 = int_mul_ovf(i0, i1)
         guard_no_overflow() []
-        escape(i2)
-        escape(i3)
-        escape(i4)
+        escape_n(i2)
+        escape_n(i3)
+        escape_n(i4)
         i24 = int_mul_ovf(i10, i11)
         guard_no_overflow() []
         i23 = int_sub_ovf(i10, i11)
@@ -5774,9 +5770,9 @@
         """
         expected = """
         [i0, i1, i10, i11, i2, i3, i4]
-        escape(i2)
-        escape(i3)
-        escape(i4)
+        escape_n(i2)
+        escape_n(i3)
+        escape_n(i4)
         i24 = int_mul_ovf(i10, i11)
         guard_no_overflow() []
         i23 = int_sub_ovf(i10, i11)
@@ -5804,12 +5800,12 @@
         guard_value(i4, 3) []
         guard_class(p9, ConstClass(node_vtable)) []
         guard_class(p9, ConstClass(node_vtable)) []
-        p22 = getfield_gc(p9, descr=inst_w_seq)
+        p22 = getfield_gc_r(p9, descr=inst_w_seq)
         guard_nonnull(p22) []
-        i23 = getfield_gc(p9, descr=inst_index)
-        p24 = getfield_gc(p22, descr=inst_w_list)
+        i23 = getfield_gc_i(p9, descr=inst_index)
+        p24 = getfield_gc_r(p22, descr=inst_w_list)
         guard_isnull(p24) []
-        i25 = getfield_gc(p22, descr=inst_length)
+        i25 = getfield_gc_i(p22, descr=inst_length)
         i26 = int_ge(i23, i25)
         guard_true(i26) []
         setfield_gc(p9, ConstPtr(myptr), descr=inst_w_seq)
@@ -5823,16 +5819,16 @@
         setfield_gc(p75, 0, descr=inst_index)
         guard_class(p75, ConstClass(node_vtable)) []
         guard_class(p75, ConstClass(node_vtable)) []
-        p79 = getfield_gc(p75, descr=inst_w_seq)
+        p79 = getfield_gc_r(p75, descr=inst_w_seq)
         guard_nonnull(p79) []
-        i80 = getfield_gc(p75, descr=inst_index)
-        p81 = getfield_gc(p79, descr=inst_w_list)
+        i80 = getfield_gc_i(p75, descr=inst_index)
+        p81 = getfield_gc_r(p79, descr=inst_w_list)
         guard_isnull(p81) []
-        i82 = getfield_gc(p79, descr=inst_length)
+        i82 = getfield_gc_i(p79, descr=inst_length)
         i83 = int_ge(i80, i82)
         guard_false(i83) []
-        i84 = getfield_gc(p79, descr=inst_start)
-        i85 = getfield_gc(p79, descr=inst_step)
+        i84 = getfield_gc_i(p79, descr=inst_start)
+        i85 = getfield_gc_i(p79, descr=inst_step)
         i86 = int_mul(i80, i85)
         i87 = int_add(i84, i86)
         i91 = int_add(i80, 1)
@@ -5854,7 +5850,7 @@
     def test_let_getfield_kill_setfields(self):
         ops = """
         [p0]
-        p1 = getfield_gc(p0, descr=valuedescr)
+        p1 = getfield_gc_r(p0, descr=valuedescr)
         setfield_gc(p0, p1, descr=valuedescr)
         setfield_gc(p0, p1, descr=valuedescr)
         setfield_gc(p0, p0, descr=valuedescr)
@@ -5862,14 +5858,14 @@
         """
         preamble = """
         [p0]
-        p1 = getfield_gc(p0, descr=valuedescr)
+        p1 = getfield_gc_r(p0, descr=valuedescr)
         setfield_gc(p0, p0, descr=valuedescr)
         #p4450 = same_as(p0) # Should be killed by backend
         jump(p0)
         """
         expected = """
         [p0]
-        p1 = getfield_gc(p0, descr=valuedescr)
+        p1 = getfield_gc_r(p0, descr=valuedescr)
         setfield_gc(p0, p0, descr=valuedescr)
         jump(p0)
         """
@@ -5878,7 +5874,7 @@
     def test_let_getfield_kill_chained_setfields(self):
         ops = """
         [p0]
-        p1 = getfield_gc(p0, descr=valuedescr)
+        p1 = getfield_gc_r(p0, descr=valuedescr)
         setfield_gc(p0, p0, descr=valuedescr)
         setfield_gc(p0, p1, descr=valuedescr)
         setfield_gc(p0, p1, descr=valuedescr)
@@ -5886,7 +5882,7 @@
         """
         preamble = """
         [p0]
-        p1 = getfield_gc(p0, descr=valuedescr)
+        p1 = getfield_gc_r(p0, descr=valuedescr)
         jump(p0)
         """
         expected = """
@@ -5899,7 +5895,7 @@
         # FXIME: Can this occur?
         ops = """
         [p0, p1, pinv]
-        i1 = getfield_gc(pinv, descr=valuedescr)
+        i1 = getfield_gc_i(pinv, descr=valuedescr)
         p2 = new_with_vtable(ConstClass(node_vtable))
         setfield_gc(p2, i1, descr=nextdescr)
         """
@@ -5910,7 +5906,7 @@
         []
         p0 = new_with_vtable(ConstClass(intobj_noimmut_vtable))
         setfield_gc(p0, 42, descr=noimmut_intval)
-        escape(p0)
+        escape_n(p0)
         jump()
         """
         self.optimize_loop(ops, ops)
@@ -5920,7 +5916,7 @@
         [i0]
         p0 = new_with_vtable(ConstClass(intobj_immut_vtable))
         setfield_gc(p0, i0, descr=immut_intval)
-        escape(p0)
+        escape_n(p0)
         jump(i0)
         """
         self.optimize_loop(ops, ops)
@@ -5929,7 +5925,7 @@
         ops = """
         []
         p0 = new_with_vtable(ConstClass(intobj_immut_vtable))
-        escape(p0)
+        escape_n(p0)
         jump()
         """
         self.optimize_loop(ops, ops)
@@ -5939,7 +5935,7 @@
         []
         p0 = new_with_vtable(ConstClass(intobj_immut_vtable))
         setfield_gc(p0, 1242, descr=immut_intval)
-        escape(p0)
+        escape_n(p0)
         jump()
         """
         from rpython.rtyper.lltypesystem import lltype, llmemory
@@ -5951,7 +5947,7 @@
                                                    IntObj1242())
         expected = """
         []
-        escape(ConstPtr(intobj1242))
+        escape_n(ConstPtr(intobj1242))
         jump()
         """
         self.optimize_loop(ops, expected)
@@ -5960,7 +5956,7 @@
         [p1]
         p0 = new_with_vtable(ConstClass(ptrobj_immut_vtable))
         setfield_gc(p0, p1, descr=immut_ptrval)
-        escape(p0)
+        escape_n(p0)
         jump(p1)
         """
         self.optimize_loop(ops, ops)
@@ -5971,7 +5967,7 @@
         p1 = new_with_vtable(ConstClass(intobj_immut_vtable))
         setfield_gc(p1, 1242, descr=immut_intval)
         setfield_gc(p0, p1, descr=immut_ptrval)
-        escape(p0)
+        escape_n(p0)
         jump()
         """
         class PtrObj1242(object):
@@ -5986,7 +5982,7 @@
                                                    PtrObj1242())
         expected = """
         []
-        escape(ConstPtr(ptrobj1242))
+        escape_n(ConstPtr(ptrobj1242))
         jump()
         """
         self.optimize_loop(ops, expected)
@@ -5994,14 +5990,14 @@
     def test_bug_unroll_with_immutables(self):
         ops = """
         [p0]
-        i2 = getfield_gc_pure(p0, descr=immut_intval)
+        i2 = getfield_gc_pure_i(p0, descr=immut_intval)
         p1 = new_with_vtable(ConstClass(intobj_immut_vtable))
         setfield_gc(p1, 1242, descr=immut_intval)
         jump(p1)
         """
         preamble = """
         [p0]
-        i2 = getfield_gc_pure(p0, descr=immut_intval)
+        i2 = getfield_gc_pure_i(p0, descr=immut_intval)
         jump()
         """
         expected = """
@@ -6015,7 +6011,7 @@
         []
         p0 = new_with_vtable(ConstClass(ptrobj_immut_vtable))
         setfield_gc(p0, p0, descr=immut_ptrval)
-        escape(p0)
+        escape_n(p0)
         jump()
         """
         from rpython.rtyper.lltypesystem import lltype, llmemory
@@ -6031,7 +6027,7 @@
                                                    PtrObjSelf())
         expected = """
         []
-        escape(ConstPtr(ptrobjself))
+        escape_n(ConstPtr(ptrobjself))
         jump()
         """
         self.optimize_loop(ops, expected)
@@ -6042,7 +6038,7 @@
         p1 = new_with_vtable(ConstClass(ptrobj_immut_vtable))
         setfield_gc(p0, p1, descr=immut_ptrval)
         setfield_gc(p1, p0, descr=immut_ptrval)
-        escape(p0)
+        escape_n(p0)
         jump()
         """
         class PtrObjSelf2(object):
@@ -6060,7 +6056,7 @@
                                                     PtrObjSelf2())
         expected = """
         []
-        escape(ConstPtr(ptrobjself2))
+        escape_n(ConstPtr(ptrobjself2))
         jump()
         """
         self.optimize_loop(ops, expected)
@@ -6119,7 +6115,7 @@
     def test_str_concat_1(self):
         ops = """
         [p1, p2]
-        p3 = call(0, p1, p2, descr=strconcatdescr)
+        p3 = call_r(0, p1, p2, descr=strconcatdescr)
         jump(p2, p3)
         """
         preamble = """
@@ -6149,7 +6145,7 @@
         p1 = newstr(2)
         strsetitem(p1, 0, i0)
         strsetitem(p1, 1, i1)
-        p3 = call(0, p1, p2, descr=strconcatdescr)
+        p3 = call_r(0, p1, p2, descr=strconcatdescr)
         jump(i1, i0, p3)
         """
         expected = """
@@ -6170,7 +6166,7 @@
         p1 = newstr(2)
         strsetitem(p1, 0, i0)
         strsetitem(p1, 1, i1)
-        p3 = call(0, p2, p1, descr=strconcatdescr)
+        p3 = call_r(0, p2, p1, descr=strconcatdescr)
         jump(i1, i0, p3)
         """
         expected = """
@@ -6190,8 +6186,8 @@
     def test_str_concat_str_str_str(self):
         ops = """
         [p1, p2, p3]
-        p4 = call(0, p1, p2, descr=strconcatdescr)
-        p5 = call(0, p4, p3, descr=strconcatdescr)
+        p4 = call_r(0, p1, p2, descr=strconcatdescr)
+        p5 = call_r(0, p4, p3, descr=strconcatdescr)
         jump(p2, p3, p5)
         """
         preamble = """
@@ -6223,7 +6219,7 @@
     def test_str_concat_str_cstr1(self):
         ops = """
         [p2]
-        p3 = call(0, p2, s"x", descr=strconcatdescr)
+        p3 = call_r(0, p2, s"x", descr=strconcatdescr)
         jump(p3)
         """
         expected = """
@@ -6242,13 +6238,13 @@
         []
         p1 = same_as(s"ab")
         p2 = same_as(s"cde")
-        p3 = call(0, p1, p2, descr=strconcatdescr)
-        escape(p3)
+        p3 = call_r(0, p1, p2, descr=strconcatdescr)
+        escape_n(p3)
         jump()
         """
         expected = """
         []
-        escape(s"abcde")
+        escape_n(s"abcde")
         jump()
         """
         self.optimize_strunicode_loop(ops, expected, expected)
@@ -6256,21 +6252,21 @@
     def test_str_slice_len_surviving1(self):
         ops = """
         [p1, i1, i2, i3]
-        escape(i3)
-        p2 = call(0, p1, i1, i2, descr=strslicedescr)
+        escape_n(i3)
+        p2 = call_r(0, p1, i1, i2, descr=strslicedescr)
         i4 = strlen(p2)
         jump(p1, i1, i2, i4)
         """
         preamble = """
         [p1, i1, i2, i3]
-        escape(i3)
+        escape_n(i3)
         i4 = int_sub(i2, i1)
         #i5 = same_as(i4)
         jump(p1, i1, i2, i4)
         """
         expected = """
         [p1, i1, i2, i3]
-        escape(i3)
+        escape_n(i3)
         jump(p1, i1, i2, i3)
         """
         self.optimize_strunicode_loop(ops, expected, preamble)
@@ -6278,17 +6274,17 @@
     def test_str_slice_len_surviving2(self):
         ops = """
         [p1, i1, i2, p2]
-        i5 = getfield_gc(p2, descr=valuedescr)
-        escape(i5)
-        p3 = call(0, p1, i1, i2, descr=strslicedescr)
+        i5 = getfield_gc_i(p2, descr=valuedescr)
+        escape_n(i5)
+        p3 = call_r(0, p1, i1, i2, descr=strslicedescr)
         i4 = strlen(p3)
         setfield_gc(p2, i4, descr=valuedescr)
         jump(p1, i1, i2, p2)
         """
         preamble = """
         [p1, i1, i2, p2]
-        i5 = getfield_gc(p2, descr=valuedescr)
-        escape(i5)
+        i5 = getfield_gc_i(p2, descr=valuedescr)
+        escape_n(i5)
         i4 = int_sub(i2, i1)
         setfield_gc(p2, i4, descr=valuedescr)
         #i8 = same_as(i4)
@@ -6296,8 +6292,8 @@
         """
         expected = """
         [p1, i1, i2, p2, i5]
-        i311 = getfield_gc(p2, descr=valuedescr)
-        escape(i311)
+        i311 = getfield_gc_i(p2, descr=valuedescr)
+        escape_n(i311)
         setfield_gc(p2, i5, descr=valuedescr)
         jump(p1, i1, i2, p2, i5)
         """
@@ -6306,7 +6302,7 @@
     def test_str_slice_1(self):
         ops = """
         [p1, i1, i2]
-        p2 = call(0, p1, i1, i2, descr=strslicedescr)
+        p2 = call_r(0, p1, i1, i2, descr=strslicedescr)
         jump(p2, i1, i2)
         """
         preamble = """
@@ -6327,7 +6323,7 @@
     def test_str_slice_2(self):
         ops = """
         [p1, i2]
-        p2 = call(0, p1, 0, i2, descr=strslicedescr)
+        p2 = call_r(0, p1, 0, i2, descr=strslicedescr)
         jump(p2, i2)
         """
         expected = """
@@ -6341,8 +6337,8 @@
     def test_str_slice_3(self):
         ops = """
         [p1, i1, i2, i3, i4]
-        p2 = call(0, p1, i1, i2, descr=strslicedescr)
-        p3 = call(0, p2, i3, i4, descr=strslicedescr)
+        p2 = call_r(0, p1, i1, i2, descr=strslicedescr)
+        p3 = call_r(0, p2, i3, i4, descr=strslicedescr)
         jump(p3, i1, i2, i3, i4)
         """
         preamble = """
@@ -6365,9 +6361,9 @@
     def test_str_slice_getitem1(self):
         ops = """
         [p1, i1, i2, i3]
-        p2 = call(0, p1, i1, i2, descr=strslicedescr)
+        p2 = call_r(0, p1, i1, i2, descr=strslicedescr)
         i4 = strgetitem(p2, i3)
-        escape(i4)
+        escape_n(i4)
         jump(p1, i1, i2, i3)
         """
         preamble = """
@@ -6375,12 +6371,12 @@
         i6 = int_sub(i2, i1)      # killed by the backend
         i5 = int_add(i1, i3)
         i4 = strgetitem(p1, i5)
-        escape(i4)
+        escape_n(i4)
         jump(p1, i1, i2, i3, i4)
         """
         expected = """
         [p1, i1, i2, i3, i4]
-        escape(i4)
+        escape_n(i4)
         jump(p1, i1, i2, i3, i4)
         """
         self.optimize_strunicode_loop(ops, expected, preamble)
@@ -6391,14 +6387,14 @@
         p1 = newstr(2)
         strsetitem(p1, 0, i3)
         strsetitem(p1, 1, i4)
-        p2 = call(0, p1, 1, 2, descr=strslicedescr)
+        p2 = call_r(0, p1, 1, 2, descr=strslicedescr)
         i5 = strgetitem(p2, 0)
-        escape(i5)
+        escape_n(i5)
         jump(i3, i4)
         """
         expected = """
         [i3, i4]
-        escape(i4)
+        escape_n(i4)
         jump(i3, i4)
         """
         self.optimize_strunicode_loop(ops, expected, expected)
@@ -6406,8 +6402,8 @@
     def test_str_slice_concat(self):
         ops = """
         [p1, i1, i2, p2]
-        p3 = call(0, p1, i1, i2, descr=strslicedescr)
-        p4 = call(0, p3, p2, descr=strconcatdescr)
+        p3 = call_r(0, p1, i1, i2, descr=strslicedescr)
+        p4 = call_r(0, p3, p2, descr=strconcatdescr)
         jump(p4, i1, i2, p2)
         """
         preamble = """
@@ -6514,8 +6510,8 @@
     def test_str_equal_noop1(self):
         ops = """
         [p1, p2]
-        i0 = call(0, p1, p2, descr=strequaldescr)
-        escape(i0)
+        i0 = call_i(0, p1, p2, descr=strequaldescr)
+        escape_n(i0)
         jump(p1, p2)
         """
         self.optimize_strunicode_loop_extradescrs(ops, ops, ops)
@@ -6523,9 +6519,9 @@
     def test_str_equal_noop2(self):
         ops = """
         [p1, p2, p3]
-        p4 = call(0, p1, p2, descr=strconcatdescr)
-        i0 = call(0, p3, p4, descr=strequaldescr)
-        escape(i0)
+        p4 = call_r(0, p1, p2, descr=strconcatdescr)
+        i0 = call_i(0, p3, p4, descr=strequaldescr)
+        escape_n(i0)
         jump(p1, p2, p3)
         """
         preamble = """
@@ -6536,8 +6532,8 @@
         p4 = newstr(i3)
         copystrcontent(p1, p4, 0, 0, i1)
         copystrcontent(p2, p4, 0, i1, i2)
-        i0 = call(0, p3, p4, descr=strequaldescr)
-        escape(i0)
+        i0 = call_i(0, p3, p4, descr=strequaldescr)
+        escape_n(i0)
         jump(p1, p2, p3, i3, i1, i2)
         """
         expected = """
@@ -6545,8 +6541,8 @@
         p4 = newstr(i3)
         copystrcontent(p1, p4, 0, 0, i1)
         copystrcontent(p2, p4, 0, i1, i2)
-        i0 = call(0, p3, p4, descr=strequaldescr)
-        escape(i0)
+        i0 = call_i(0, p3, p4, descr=strequaldescr)
+        escape_n(i0)
         jump(p1, p2, p3, i3, i1, i2)
         """
         self.optimize_strunicode_loop_extradescrs(ops, expected,
@@ -6555,22 +6551,22 @@
     def test_str_equal_slice1(self):
         ops = """
         [p1, i1, i2, p3]
-        p4 = call(0, p1, i1, i2, descr=strslicedescr)
-        i0 = call(0, p4, p3, descr=strequaldescr)
-        escape(i0)
+        p4 = call_r(0, p1, i1, i2, descr=strslicedescr)
+        i0 = call_i(0, p4, p3, descr=strequaldescr)
+        escape_n(i0)
         jump(p1, i1, i2, p3)
         """
         preamble = """
         [p1, i1, i2, p3]
         i3 = int_sub(i2, i1)
-        i0 = call(0, p1, i1, i3, p3, descr=streq_slice_checknull_descr)
-        escape(i0)
+        i0 = call_i(0, p1, i1, i3, p3, descr=streq_slice_checknull_descr)
+        escape_n(i0)
         jump(p1, i1, i2, p3, i3)
         """
         expected = """
         [p1, i1, i2, p3, i3]
-        i0 = call(0, p1, i1, i3, p3, descr=streq_slice_checknull_descr)
-        escape(i0)
+        i0 = call_i(0, p1, i1, i3, p3, descr=streq_slice_checknull_descr)
+        escape_n(i0)
         jump(p1, i1, i2, p3, i3)
         """
         self.optimize_strunicode_loop_extradescrs(ops, expected,
@@ -6579,22 +6575,22 @@
     def test_str_equal_slice2(self):
         ops = """
         [p1, i1, i2, p3]
-        p4 = call(0, p1, i1, i2, descr=strslicedescr)
-        i0 = call(0, p3, p4, descr=strequaldescr)
-        escape(i0)
+        p4 = call_r(0, p1, i1, i2, descr=strslicedescr)
+        i0 = call_i(0, p3, p4, descr=strequaldescr)
+        escape_n(i0)
         jump(p1, i1, i2, p3)
         """
         preamble = """
         [p1, i1, i2, p3]
         i4 = int_sub(i2, i1)
-        i0 = call(0, p1, i1, i4, p3, descr=streq_slice_checknull_descr)
-        escape(i0)
+        i0 = call_i(0, p1, i1, i4, p3, descr=streq_slice_checknull_descr)
+        escape_n(i0)
         jump(p1, i1, i2, p3, i4)
         """
         expected = """
         [p1, i1, i2, p3, i4]
-        i0 = call(0, p1, i1, i4, p3, descr=streq_slice_checknull_descr)
-        escape(i0)
+        i0 = call_i(0, p1, i1, i4, p3, descr=streq_slice_checknull_descr)
+        escape_n(i0)
         jump(p1, i1, i2, p3, i4)
         """
         self.optimize_strunicode_loop_extradescrs(ops, expected,
@@ -6604,23 +6600,23 @@
         ops = """
         [p1, i1, i2, p3]
         guard_nonnull(p3) []
-        p4 = call(0, p1, i1, i2, descr=strslicedescr)
-        i0 = call(0, p3, p4, descr=strequaldescr)
-        escape(i0)
+        p4 = call_r(0, p1, i1, i2, descr=strslicedescr)
+        i0 = call_i(0, p3, p4, descr=strequaldescr)
+        escape_n(i0)
         jump(p1, i1, i2, p3)
         """
         expected = """
         [p1, i1, i2, p3, i4]
-        i0 = call(0, p1, i1, i4, p3, descr=streq_slice_nonnull_descr)
-        escape(i0)
+        i0 = call_i(0, p1, i1, i4, p3, descr=streq_slice_nonnull_descr)
+        escape_n(i0)
         jump(p1, i1, i2, p3, i4)
         """
         preamble = """
         [p1, i1, i2, p3]
         guard_nonnull(p3) []
         i4 = int_sub(i2, i1)
-        i0 = call(0, p1, i1, i4, p3, descr=streq_slice_nonnull_descr)
-        escape(i0)
+        i0 = call_i(0, p1, i1, i4, p3, descr=streq_slice_nonnull_descr)
+        escape_n(i0)
         jump(p1, i1, i2, p3, i4)
         """
         self.optimize_strunicode_loop_extradescrs(ops,
@@ -6629,22 +6625,22 @@
     def test_str_equal_slice4(self):
         ops = """
         [p1, i1, i2]
-        p3 = call(0, p1, i1, i2, descr=strslicedescr)
-        i0 = call(0, p3, s"x", descr=strequaldescr)
-        escape(i0)
+        p3 = call_r(0, p1, i1, i2, descr=strslicedescr)
+        i0 = call_i(0, p3, s"x", descr=strequaldescr)
+        escape_n(i0)
         jump(p1, i1, i2)
         """
         preamble = """
         [p1, i1, i2]
         i3 = int_sub(i2, i1)
-        i0 = call(0, p1, i1, i3, 120, descr=streq_slice_char_descr)
-        escape(i0)
+        i0 = call_i(0, p1, i1, i3, 120, descr=streq_slice_char_descr)
+        escape_n(i0)
         jump(p1, i1, i2, i3)
         """
         expected = """
         [p1, i1, i2, i3]
-        i0 = call(0, p1, i1, i3, 120, descr=streq_slice_char_descr)
-        escape(i0)
+        i0 = call_i(0, p1, i1, i3, 120, descr=streq_slice_char_descr)
+        escape_n(i0)
         jump(p1, i1, i2, i3)
         """
         self.optimize_strunicode_loop_extradescrs(ops, expected,
@@ -6653,24 +6649,24 @@
     def test_str_equal_slice5(self):
         ops = """
         [p1, i1, i2, i3]
-        p4 = call(0, p1, i1, i2, descr=strslicedescr)
+        p4 = call_r(0, p1, i1, i2, descr=strslicedescr)
         p5 = newstr(1)
         strsetitem(p5, 0, i3)
-        i0 = call(0, p5, p4, descr=strequaldescr)
-        escape(i0)
+        i0 = call_i(0, p5, p4, descr=strequaldescr)
+        escape_n(i0)
         jump(p1, i1, i2, i3)
         """
         preamble = """
         [p1, i1, i2, i3]
         i4 = int_sub(i2, i1)
-        i0 = call(0, p1, i1, i4, i3, descr=streq_slice_char_descr)
-        escape(i0)
+        i0 = call_i(0, p1, i1, i4, i3, descr=streq_slice_char_descr)
+        escape_n(i0)
         jump(p1, i1, i2, i3, i4)
         """
         expected = """
         [p1, i1, i2, i3, i4]
-        i0 = call(0, p1, i1, i4, i3, descr=streq_slice_char_descr)
-        escape(i0)
+        i0 = call_i(0, p1, i1, i4, i3, descr=streq_slice_char_descr)
+        escape_n(i0)
         jump(p1, i1, i2, i3, i4)
         """
         self.optimize_strunicode_loop_extradescrs(ops, expected,
@@ -6679,19 +6675,19 @@
     def test_str_equal_none1(self):
         ops = """
         [p1]
-        i0 = call(0, p1, NULL, descr=strequaldescr)
-        escape(i0)
+        i0 = call_i(0, p1, NULL, descr=strequaldescr)
+        escape_n(i0)
         jump(p1)
         """
         preamble = """
         [p1]
         i0 = ptr_eq(p1, NULL)
-        escape(i0)
+        escape_n(i0)
         jump(p1, i0)
         """
         expected = """
         [p1, i0]
-        escape(i0)
+        escape_n(i0)
         jump(p1, i0)
         """
         self.optimize_strunicode_loop_extradescrs(ops, expected, preamble)
@@ -6699,19 +6695,19 @@
     def test_str_equal_none2(self):
         ops = """
         [p1]
-        i0 = call(0, NULL, p1, descr=strequaldescr)
-        escape(i0)
+        i0 = call_i(0, NULL, p1, descr=strequaldescr)
+        escape_n(i0)
         jump(p1)
         """
         preamble = """
         [p1]
         i0 = ptr_eq(p1, NULL)
-        escape(i0)
+        escape_n(i0)
         jump(p1, i0)
         """
         expected = """
         [p1, i0]
-        escape(i0)
+        escape_n(i0)
         jump(p1, i0)
         """
         self.optimize_strunicode_loop_extradescrs(ops, expected, preamble)
@@ -6720,21 +6716,21 @@
         ops = """
         [p1]
         guard_nonnull(p1) []
-        i0 = call(0, p1, s"hello world", descr=strequaldescr)
-        escape(i0)
+        i0 = call_i(0, p1, s"hello world", descr=strequaldescr)
+        escape_n(i0)
         jump(p1)
         """
         expected = """
         [p1]
-        i0 = call(0, p1, s"hello world", descr=streq_nonnull_descr)
-        escape(i0)
+        i0 = call_i(0, p1, s"hello world", descr=streq_nonnull_descr)
+        escape_n(i0)
         jump(p1)
         """
         preamble = """
         [p1]
         guard_nonnull(p1) []
-        i0 = call(0, p1, s"hello world", descr=streq_nonnull_descr)
-        escape(i0)
+        i0 = call_i(0, p1, s"hello world", descr=streq_nonnull_descr)
+        escape_n(i0)
         jump(p1)
         """
         self.optimize_strunicode_loop_extradescrs(ops, expected, preamble)
@@ -6743,13 +6739,13 @@
         ops = """
         [p1]
         guard_nonnull(p1) []
-        i0 = call(0, p1, s"", descr=strequaldescr)
-        escape(i0)
+        i0 = call_i(0, p1, s"", descr=strequaldescr)
+        escape_n(i0)
         jump(p1)
         """
         expected = """
         [p1, i0]
-        escape(i0)
+        escape_n(i0)
         jump(p1, i0)
         """
         preamble = """
@@ -6757,7 +6753,7 @@
         guard_nonnull(p1) []
         i1 = strlen(p1)
         i0 = int_eq(i1, 0)
-        escape(i0)
+        escape_n(i0)
         jump(p1, i0)
         """
         self.optimize_strunicode_loop_extradescrs(ops, expected, preamble)
@@ -6766,21 +6762,21 @@
         ops = """
         [p1]
         guard_nonnull(p1) []
-        i0 = call(0, p1, s"x", descr=strequaldescr)
-        escape(i0)
+        i0 = call_i(0, p1, s"x", descr=strequaldescr)
+        escape_n(i0)
         jump(p1)
         """
         expected = """
         [p1]
-        i0 = call(0, p1, 120, descr=streq_nonnull_char_descr)
-        escape(i0)
+        i0 = call_i(0, p1, 120, descr=streq_nonnull_char_descr)
+        escape_n(i0)
         jump(p1)
         """
         preamble = """
         [p1]
         guard_nonnull(p1) []
-        i0 = call(0, p1, 120, descr=streq_nonnull_char_descr)
-        escape(i0)
+        i0 = call_i(0, p1, 120, descr=streq_nonnull_char_descr)
+        escape_n(i0)
         jump(p1)
         """
         self.optimize_strunicode_loop_extradescrs(ops, expected, preamble)
@@ -6788,9 +6784,9 @@
     def test_str_equal_nonnull4(self):
         ops = """
         [p1, p2]
-        p4 = call(0, p1, p2, descr=strconcatdescr)
-        i0 = call(0, s"hello world", p4, descr=strequaldescr)
-        escape(i0)
+        p4 = call_r(0, p1, p2, descr=strconcatdescr)
+        i0 = call_i(0, s"hello world", p4, descr=strequaldescr)
+        escape_n(i0)
         jump(p1, p2)
         """
         preamble = """
@@ -6801,8 +6797,8 @@
         p4 = newstr(i3)
         copystrcontent(p1, p4, 0, 0, i1)
         copystrcontent(p2, p4, 0, i1, i2)
-        i0 = call(0, s"hello world", p4, descr=streq_nonnull_descr)
-        escape(i0)
+        i0 = call_i(0, s"hello world", p4, descr=streq_nonnull_descr)
+        escape_n(i0)
         jump(p1, p2, i3, i1, i2)
         """
         expected = """
@@ -6810,8 +6806,8 @@
         p4 = newstr(i3)
         copystrcontent(p1, p4, 0, 0, i1)
         copystrcontent(p2, p4, 0, i1, i2)
-        i0 = call(0, s"hello world", p4, descr=streq_nonnull_descr)
-        escape(i0)
+        i0 = call_i(0, s"hello world", p4, descr=streq_nonnull_descr)
+        escape_n(i0)
         jump(p1, p2, i3, i1, i2)
         """
         self.optimize_strunicode_loop_extradescrs(ops, expected, preamble)
@@ -6820,13 +6816,13 @@
         ops = """
         [i1]
         p1 = newstr(0)
-        i0 = call(0, p1, s"", descr=strequaldescr)
-        escape(i0)
+        i0 = call_i(0, p1, s"", descr=strequaldescr)
+        escape_n(i0)
         jump(i1)
         """
         expected = """
         [i1]
-        escape(1)
+        escape_n(1)
         jump(i1)
         """
         self.optimize_strunicode_loop_extradescrs(ops, expected, expected)
@@ -6836,19 +6832,19 @@
         [i1]
         p1 = newstr(1)
         strsetitem(p1, 0, i1)
-        i0 = call(0, p1, s"x", descr=strequaldescr)
-        escape(i0)
+        i0 = call_i(0, p1, s"x", descr=strequaldescr)
+        escape_n(i0)
         jump(i1)
         """
         preamble = """
         [i1]
         i0 = int_eq(i1, 120)     # ord('x')
-        escape(i0)
+        escape_n(i0)
         jump(i1, i0)
         """
         expected = """
         [i1, i0]
-        escape(i0)
+        escape_n(i0)
         jump(i1, i0)
         """
         self.optimize_strunicode_loop_extradescrs(ops, expected, preamble)
@@ -6860,19 +6856,19 @@
         strsetitem(p1, 0, i1)
         p2 = newstr(1)
         strsetitem(p2, 0, i2)
-        i0 = call(0, p1, p2, descr=strequaldescr)
-        escape(i0)
+        i0 = call_i(0, p1, p2, descr=strequaldescr)
+        escape_n(i0)
         jump(i1, i2)
         """
         preamble = """
         [i1, i2]
         i0 = int_eq(i1, i2)
-        escape(i0)
+        escape_n(i0)
         jump(i1, i2, i0)
         """
         expected = """
         [i1, i2, i0]
-        escape(i0)
+        escape_n(i0)
         jump(i1, i2, i0)
         """
         self.optimize_strunicode_loop_extradescrs(ops, expected, preamble)
@@ -6883,8 +6879,8 @@
         p1 = newstr(2)
         strsetitem(p1, 0, i1)
         strsetitem(p1, 1, i2)
-        i0 = call(0, p1, s"xy", descr=strequaldescr)
-        escape(i0)
+        i0 = call_i(0, p1, s"xy", descr=strequaldescr)
+        escape_n(i0)
         jump(i1, i2)
         """
         expected = """
@@ -6892,8 +6888,8 @@
         p1 = newstr(2)
         strsetitem(p1, 0, i1)
         strsetitem(p1, 1, i2)
-        i0 = call(0, p1, s"xy", descr=streq_lengthok_descr)
-        escape(i0)
+        i0 = call_i(0, p1, s"xy", descr=streq_lengthok_descr)
+        escape_n(i0)
         jump(i1, i2)
         """
         self.optimize_strunicode_loop_extradescrs(ops, expected, expected)
@@ -6901,14 +6897,14 @@
     def test_str_equal_chars3(self):
         ops = """
         [p1]
-        i0 = call(0, s"x", p1, descr=strequaldescr)
-        escape(i0)
+        i0 = call_i(0, s"x", p1, descr=strequaldescr)
+        escape_n(i0)
         jump(p1)
         """
         expected = """
         [p1]
-        i0 = call(0, p1, 120, descr=streq_checknull_char_descr)
-        escape(i0)
+        i0 = call_i(0, p1, 120, descr=streq_checknull_char_descr)
+        escape_n(i0)
         jump(p1)
         """
         self.optimize_strunicode_loop_extradescrs(ops, expected, expected)
@@ -6918,13 +6914,13 @@
         [i1]
         p1 = newstr(1)
         strsetitem(p1, 0, i1)
-        i0 = call(0, s"xy", p1, descr=strequaldescr)
-        escape(i0)
+        i0 = call_i(0, s"xy", p1, descr=strequaldescr)
+        escape_n(i0)
         jump(i1)
         """
         expected = """
         [i1]
-        escape(0)
+        escape_n(0)
         jump(i1)
         """
         self.optimize_strunicode_loop_extradescrs(ops, expected, expected)
@@ -6932,16 +6928,16 @@
     def test_str2unicode_constant(self):
         ops = """
         []
-        escape(1213)
-        p0 = call(0, "xy", descr=s2u_descr)      # string -> unicode
+        escape_n(1213)
+        p0 = call_r(0, "xy", descr=s2u_descr)      # string -> unicode
         guard_no_exception() []
-        escape(p0)
+        escape_n(p0)
         jump()
         """
         expected = """
         []
-        escape(1213)
-        escape(u"xy")
+        escape_n(1213)
+        escape_n(u"xy")
         jump()
         """
         self.optimize_strunicode_loop_extradescrs(ops, expected, expected)
@@ -6949,9 +6945,9 @@
     def test_str2unicode_nonconstant(self):
         ops = """
         [p0]
-        p1 = call(0, p0, descr=s2u_descr)      # string -> unicode
+        p1 = call_r(0, p0, descr=s2u_descr)      # string -> unicode
         guard_no_exception() []
-        escape(p1)
+        escape_n(p1)
         jump(p1)
         """
         self.optimize_strunicode_loop_extradescrs(ops, ops, ops)
@@ -6962,14 +6958,14 @@
     def test_record_known_class(self):
         ops = """
         [p0]
-        p1 = getfield_gc(p0, descr=nextdescr)
+        p1 = getfield_gc_r(p0, descr=nextdescr)
         record_known_class(p1, ConstClass(node_vtable))
         guard_class(p1, ConstClass(node_vtable)) []
         jump(p1)
         """
         expected = """
         [p0]
-        p1 = getfield_gc(p0, descr=nextdescr)
+        p1 = getfield_gc_r(p0, descr=nextdescr)
         jump(p1)
         """
         self.optimize_loop(ops, expected)
@@ -6979,14 +6975,14 @@
         [p0, p1, i0]
         quasiimmut_field(p0, descr=quasiimmutdescr)
         guard_not_invalidated() []
-        i1 = getfield_gc_pure(p0, descr=quasifielddescr)
-        escape(i1)
+        i1 = getfield_gc_pure_i(p0, descr=quasifielddescr)
+        escape_n(i1)
         jump(p1, p0, i1)
         """
         expected = """
         [p0, p1, i0]
-        i1 = getfield_gc_pure(p0, descr=quasifielddescr)
-        escape(i1)
+        i1 = getfield_gc_pure_i(p0, descr=quasifielddescr)
+        escape_n(i1)
         jump(p1, p0, i1)
         """
         self.optimize_loop(ops, expected)
@@ -6996,14 +6992,14 @@
         []
         quasiimmut_field(ConstPtr(quasiptr), descr=quasiimmutdescr)
         guard_not_invalidated() []
-        i1 = getfield_gc_pure(ConstPtr(quasiptr), descr=quasifielddescr)
-        escape(i1)
+        i1 = getfield_gc_pure_i(ConstPtr(quasiptr), descr=quasifielddescr)
+        escape_n(i1)
         jump()
         """
         expected = """
         []
         guard_not_invalidated() []
-        escape(-4247)
+        escape_n(-4247)
         jump()
         """
         self.optimize_loop(ops, expected, expected)
@@ -7030,14 +7026,14 @@
         ops = """
         [i0]
         guard_not_invalidated() []
-        call_may_force(i0, descr=mayforcevirtdescr)
+        call_may_force_n(i0, descr=mayforcevirtdescr)
         guard_not_invalidated() []
         jump(i0)
         """
         expected = """
         [i0]
         guard_not_invalidated() []
-        call_may_force(i0, descr=mayforcevirtdescr)
+        call_may_force_n(i0, descr=mayforcevirtdescr)
         guard_not_invalidated() []
         jump(i0)
         """
@@ -7048,22 +7044,22 @@
         [i0a, i0b]
         quasiimmut_field(ConstPtr(quasiptr), descr=quasiimmutdescr)
         guard_not_invalidated() []
-        i1 = getfield_gc_pure(ConstPtr(quasiptr), descr=quasifielddescr)
-        call_may_force(i0b, descr=mayforcevirtdescr)
+        i1 = getfield_gc_pure_i(ConstPtr(quasiptr), descr=quasifielddescr)
+        call_may_force_n(i0b, descr=mayforcevirtdescr)
         quasiimmut_field(ConstPtr(quasiptr), descr=quasiimmutdescr)
         guard_not_invalidated() []
-        i2 = getfield_gc_pure(ConstPtr(quasiptr), descr=quasifielddescr)
-        i3 = escape(i1)
-        i4 = escape(i2)
+        i2 = getfield_gc_pure_i(ConstPtr(quasiptr), descr=quasifielddescr)
+        i3 = escape_i(i1)
+        i4 = escape_i(i2)
         jump(i3, i4)
         """
         expected = """
         [i0a, i0b]
         guard_not_invalidated() []
-        call_may_force(i0b, descr=mayforcevirtdescr)
+        call_may_force_n(i0b, descr=mayforcevirtdescr)
         guard_not_invalidated() []
-        i3 = escape(-4247)
-        i4 = escape(-4247)
+        i3 = escape_i(-4247)
+        i4 = escape_i(-4247)
         jump(i3, i4)
         """
         self.optimize_loop(ops, expected)
@@ -7075,20 +7071,20 @@
         setfield_gc(p, 421, descr=quasifielddescr)
         quasiimmut_field(p, descr=quasiimmutdescr)
         guard_not_invalidated() []
-        i1 = getfield_gc_pure(p, descr=quasifielddescr)
-        call_may_force(i0b, descr=mayforcevirtdescr)
+        i1 = getfield_gc_pure_i(p, descr=quasifielddescr)
+        call_may_force_n(i0b, descr=mayforcevirtdescr)
         quasiimmut_field(p, descr=quasiimmutdescr)
         guard_not_invalidated() []
-        i2 = getfield_gc_pure(p, descr=quasifielddescr)
-        i3 = escape(i1)
-        i4 = escape(i2)
+        i2 = getfield_gc_pure_i(p, descr=quasifielddescr)
+        i3 = escape_i(i1)
+        i4 = escape_i(i2)
         jump(i3, i4)
         """
         expected = """
         [i0a, i0b]
-        call_may_force(i0b, descr=mayforcevirtdescr)
-        i3 = escape(421)
-        i4 = escape(421)
+        call_may_force_n(i0b, descr=mayforcevirtdescr)
+        i3 = escape_i(421)
+        i4 = escape_i(421)
         jump(i3, i4)
         """
         self.optimize_loop(ops, expected)
@@ -7096,23 +7092,23 @@
     def test_constant_getfield1(self):
         ops = """
         [p1, p187, i184]
-        p188 = getarrayitem_gc(p187, 42, descr=<GcPtrArrayDescr>)
+        p188 = getarrayitem_gc_r(p187, 42, descr=<GcPtrArrayDescr>)
         guard_value(p188, ConstPtr(myptr)) []
-        p25 = getfield_gc(ConstPtr(myptr), descr=otherdescr)
+        p25 = getfield_gc_r(ConstPtr(myptr), descr=otherdescr)
         jump(p25, p187, i184)
         """
         preamble = """
         [p1, p187, i184]
-        p188 = getarrayitem_gc(p187, 42, descr=<GcPtrArrayDescr>)
+        p188 = getarrayitem_gc_r(p187, 42, descr=<GcPtrArrayDescr>)
         guard_value(p188, ConstPtr(myptr)) []
-        p25 = getfield_gc(ConstPtr(myptr), descr=otherdescr)
+        p25 = getfield_gc_r(ConstPtr(myptr), descr=otherdescr)
         jump(p25, p187, i184)
         """
         short = """
         [p1, p187, i184]
-        p188 = getarrayitem_gc(p187, 42, descr=<GcPtrArrayDescr>)
+        p188 = getarrayitem_gc_r(p187, 42, descr=<GcPtrArrayDescr>)
         guard_value(p188, ConstPtr(myptr)) []
-        p25 = getfield_gc(ConstPtr(myptr), descr=otherdescr)
+        p25 = getfield_gc_r(ConstPtr(myptr), descr=otherdescr)
         jump(p25, p187, i184)
         """
         expected = """
@@ -7124,15 +7120,15 @@
     def test_constant_getfield1bis(self):
         ops = """
         [p1, p187, i184]
-        p188 = getarrayitem_gc(p187, 42, descr=<GcPtrArrayDescr>)
+        p188 = getarrayitem_gc_r(p187, 42, descr=<GcPtrArrayDescr>)
         guard_value(p188, ConstPtr(myptr)) []
-        p25 = getfield_gc(ConstPtr(myptr), descr=otherdescr)
-        p26 = call(p25, descr=nonwritedescr)
+        p25 = getfield_gc_r(ConstPtr(myptr), descr=otherdescr)
+        p26 = call_r(p25, descr=nonwritedescr)
         jump(p26, p187, i184)
         """
         expected = """
         [p24, p187, i184, p25]
-        p26 = call(p25, descr=nonwritedescr)
+        p26 = call_r(p25, descr=nonwritedescr)
         jump(p26, p187, i184, p25)
         """
         self.optimize_loop(ops, expected)
@@ -7140,7 +7136,7 @@
     def test_constant_getfield2(self):
         ops = """
         [p19]
-        p22 = getfield_gc(p19, descr=otherdescr)
+        p22 = getfield_gc_r(p19, descr=otherdescr)
         guard_value(p19, ConstPtr(myptr)) []
         jump(p19)
         """
@@ -7153,14 +7149,14 @@
     def test_constant_getfield3(self):
         ops = """
         [p19, p20, p21]
-        p22 = getfield_gc(p19, descr=otherdescr)
+        p22 = getfield_gc_r(p19, descr=otherdescr)
         guard_value(p19, ConstPtr(myptr)) []
-        p23 = getfield_gc(ConstPtr(myptr), descr=otherdescr)
+        p23 = getfield_gc_r(ConstPtr(myptr), descr=otherdescr)
         jump(p20, p21, p21)
         """
         expected = """
         [p20, p21]
-        p22 = getfield_gc(p20, descr=otherdescr)
+        p22 = getfield_gc_r(p20, descr=otherdescr)
         guard_value(p20, ConstPtr(myptr)) []
         jump(p21, p21)
         """
@@ -7169,14 +7165,14 @@
     def test_constant_getfield4(self):
         ops = """
         [p19, p20, p21]
-        p22 = getfield_gc(p19, descr=otherdescr)
-        p23 = getfield_gc(ConstPtr(myptr), descr=otherdescr)
+        p22 = getfield_gc_r(p19, descr=otherdescr)
+        p23 = getfield_gc_r(ConstPtr(myptr), descr=otherdescr)
         guard_value(p19, ConstPtr(myptr)) []
         jump(p20, p21, p21)
         """
         expected = """
         [p20, p21]
-        p22 = getfield_gc(p20, descr=otherdescr)
+        p22 = getfield_gc_r(p20, descr=otherdescr)
         guard_value(p20, ConstPtr(myptr)) []
         jump(p21, p21)
         """
@@ -7185,18 +7181,18 @@
     def test_constnats_among_virtual_fileds(self):
         ops = """
         [p19, p20, p21]
-        p1 = getfield_gc(p20, descr=valuedescr)
-        p2 = getfield_gc(p1, descr=otherdescr)
+        p1 = getfield_gc_r(p20, descr=valuedescr)
+        p2 = getfield_gc_r(p1, descr=otherdescr)
         pv = new_with_vtable(ConstClass(node_vtable))
         setfield_gc(pv, p19, descr=valuedescr)
-        p22 = getfield_gc(p19, descr=otherdescr)
+        p22 = getfield_gc_r(p19, descr=otherdescr)
         guard_value(p19, ConstPtr(myptr)) []
-        p23 = getfield_gc(ConstPtr(myptr), descr=otherdescr)
+        p23 = getfield_gc_r(ConstPtr(myptr), descr=otherdescr)
         jump(p21, pv, p21)
         """
         expected = """
         [p20]
-        p22 = getfield_gc(p20, descr=otherdescr)
+        p22 = getfield_gc_r(p20, descr=otherdescr)
         guard_value(p20, ConstPtr(myptr)) []
         jump(ConstPtr(myptr))
         """
@@ -7210,19 +7206,19 @@
         # results of the two getfields as separate boxes.
         ops = """
         [p0, p1, ii, ii2]
-        i1 = getfield_gc(p0, descr=valuedescr)
-        i2 = getfield_gc(p1, descr=otherdescr)
+        i1 = getfield_gc_i(p0, descr=valuedescr)
+        i2 = getfield_gc_i(p1, descr=otherdescr)
         i3 = int_add(i1, i2)
         setfield_gc(p0, ii, descr=valuedescr)
         setfield_gc(p1, ii, descr=otherdescr)
-        i4 = getfield_gc(p0, descr=valuedescr)
-        i5 = getfield_gc(p1, descr=otherdescr)
+        i4 = getfield_gc_i(p0, descr=valuedescr)
+        i5 = getfield_gc_i(p1, descr=otherdescr)
         jump(p0, p1, ii2, ii)
         """
         preamble = """
         [p0, p1, ii, ii2]
-        i1 = getfield_gc(p0, descr=valuedescr)
-        i2 = getfield_gc(p1, descr=otherdescr)
+        i1 = getfield_gc_i(p0, descr=valuedescr)
+        i2 = getfield_gc_i(p1, descr=otherdescr)
         i3 = int_add(i1, i2)
         setfield_gc(p0, ii, descr=valuedescr)
         setfield_gc(p1, ii, descr=otherdescr)
@@ -7230,8 +7226,8 @@
         """
         expected = """
         [p0, p1, ii, ii2]
-        i1 = getfield_gc(p0, descr=valuedescr)
-        i2 = getfield_gc(p1, descr=otherdescr)
+        i1 = getfield_gc_i(p0, descr=valuedescr)
+        i2 = getfield_gc_i(p1, descr=otherdescr)
         i3 = int_add(i1, i2)
         setfield_gc(p0, ii, descr=valuedescr)
         setfield_gc(p1, ii, descr=otherdescr)
@@ -7242,8 +7238,8 @@
     def test_dont_specialize_on_boxes_equal(self):
         ops = """


More information about the pypy-commit mailing list