[pypy-commit] pypy optresult: whack whack whack until we get somewhere with the backend tests

fijal noreply at buildbot.pypy.org
Thu May 28 15:49:24 CEST 2015


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: optresult
Changeset: r77651:813acea37659
Date: 2015-05-28 15:49 +0200
http://bitbucket.org/pypy/pypy/changeset/813acea37659/

Log:	whack whack whack until we get somewhere with the backend tests

diff --git a/rpython/jit/backend/llsupport/descr.py b/rpython/jit/backend/llsupport/descr.py
--- a/rpython/jit/backend/llsupport/descr.py
+++ b/rpython/jit/backend/llsupport/descr.py
@@ -7,6 +7,7 @@
 from rpython.jit.codewriter import heaptracker, longlong
 from rpython.jit.codewriter.longlong import is_longlong
 from rpython.jit.metainterp.optimizeopt import intbounds
+from rpython.rtyper import rclass
 
 
 class GcCache(object):
@@ -37,7 +38,7 @@
 
     def __init__(self, size, count_fields_if_immut=-1,
                  gc_fielddescrs=None, all_fielddescrs=None,
-                 vtable=0):
+                 vtable=lltype.nullptr(rclass.OBJECT_VTABLE)):
         self.size = size
         self.count_fields_if_immut = count_fields_if_immut
         self.gc_fielddescrs = gc_fielddescrs
diff --git a/rpython/jit/backend/llsupport/test/test_descr.py b/rpython/jit/backend/llsupport/test/test_descr.py
--- a/rpython/jit/backend/llsupport/test/test_descr.py
+++ b/rpython/jit/backend/llsupport/test/test_descr.py
@@ -13,24 +13,24 @@
     T = lltype.GcStruct('T')
     S = lltype.GcStruct('S', ('x', lltype.Char),
                              ('y', lltype.Ptr(T)))
-    descr_s = get_size_descr(c0, S)
-    descr_t = get_size_descr(c0, T)
+    descr_s = get_size_descr(None, c0, S, False)
+    descr_t = get_size_descr(None, c0, T, False)
     assert descr_s.size == symbolic.get_size(S, False)
     assert descr_t.size == symbolic.get_size(T, False)
     assert descr_s.count_fields_if_immutable() == -1
     assert descr_t.count_fields_if_immutable() == -1
     assert descr_t.gc_fielddescrs == []
     assert len(descr_s.gc_fielddescrs) == 1
-    assert descr_s == get_size_descr(c0, S)
-    assert descr_s != get_size_descr(c1, S)
+    assert descr_s == get_size_descr(None, c0, S, False)
+    assert descr_s != get_size_descr(None, c1, S, False)
     #
-    descr_s = get_size_descr(c1, S)
+    descr_s = get_size_descr(None, c1, S, False)
     assert isinstance(descr_s.size, Symbolic)
     assert descr_s.count_fields_if_immutable() == -1
 
     PARENT = lltype.Struct('P', ('x', lltype.Ptr(T)))
     STRUCT = lltype.GcStruct('S', ('parent', PARENT), ('y', lltype.Ptr(T)))
-    descr_struct = get_size_descr(c0, STRUCT)
+    descr_struct = get_size_descr(None, c0, STRUCT, False)
     assert len(descr_struct.gc_fielddescrs) == 2
 
 def test_get_size_descr_immut():
@@ -49,7 +49,7 @@
     for STRUCT, expected in [(S, 0), (T, 1), (U, 3), (V, 3)]:
         for translated in [False, True]:
             c0 = GcCache(translated)
-            descr_s = get_size_descr(c0, STRUCT)
+            descr_s = get_size_descr(None, c0, STRUCT, False)
             assert descr_s.count_fields_if_immutable() == expected
 
 def test_get_field_descr():
@@ -329,7 +329,7 @@
     S = lltype.GcStruct('S', ('x', lltype.Char),
                              ('y', lltype.Ptr(T)),
                              ('z', lltype.Ptr(T)))
-    descr1 = get_size_descr(c0, S)
+    descr1 = get_size_descr(None, c0, S, False)
     s = symbolic.get_size(S, False)
     assert repr_of_descr(descr1) == '<SizeDescr %d>' % s
     #
diff --git a/rpython/jit/backend/llsupport/test/test_gc.py b/rpython/jit/backend/llsupport/test/test_gc.py
--- a/rpython/jit/backend/llsupport/test/test_gc.py
+++ b/rpython/jit/backend/llsupport/test/test_gc.py
@@ -5,9 +5,9 @@
 from rpython.jit.backend.llsupport import jitframe, gc, descr
 from rpython.jit.backend.llsupport import symbolic
 from rpython.jit.metainterp.gc import get_description
-from rpython.jit.metainterp.history import BoxPtr, BoxInt, ConstPtr
+from rpython.jit.metainterp.history import ConstPtr
 from rpython.jit.metainterp.resoperation import get_deep_immutable_oplist, rop,\
-     ResOperation
+     ResOperation, InputArgRef
 from rpython.rlib.rarithmetic import is_valid_int, r_uint
 
 def test_boehm():
@@ -23,7 +23,7 @@
     #
     # ---------- gc_malloc ----------
     S = lltype.GcStruct('S', ('x', lltype.Signed))
-    sizedescr = descr.get_size_descr(gc_ll_descr, S)
+    sizedescr = descr.get_size_descr(None, gc_ll_descr, S, False)
     p = gc_ll_descr.gc_malloc(sizedescr)
     assert record == [(sizedescr.size, p)]
     del record[:]
@@ -143,7 +143,7 @@
 
     def test_gc_malloc(self):
         S = lltype.GcStruct('S', ('x', lltype.Signed))
-        sizedescr = descr.get_size_descr(self.gc_ll_descr, S)
+        sizedescr = descr.get_size_descr(None, self.gc_ll_descr, S, False)
         p = self.gc_ll_descr.gc_malloc(sizedescr)
         assert lltype.typeOf(p) == llmemory.GCREF
         assert self.llop1.record == [("fixedsize", repr(sizedescr.size),
@@ -184,14 +184,13 @@
         llop1 = self.llop1
         #
         rewriter = gc.GcRewriterAssembler(gc_ll_descr, None)
-        newops = rewriter.newops
-        v_base = BoxPtr()
+        newops = rewriter._newops
+        v_base = InputArgRef()
         rewriter.gen_write_barrier(v_base)
         assert llop1.record == []
         assert len(newops) == 1
         assert newops[0].getopnum() == rop.COND_CALL_GC_WB
         assert newops[0].getarg(0) == v_base
-        assert newops[0].result is None
         wbdescr = newops[0].getdescr()
         assert is_valid_int(wbdescr.jit_wb_if_flag)
         assert is_valid_int(wbdescr.jit_wb_if_flag_byteofs)
@@ -217,11 +216,9 @@
         S = lltype.GcStruct('S')
         s = lltype.malloc(S)
         s_gcref = lltype.cast_opaque_ptr(llmemory.GCREF, s)
-        v_random_box = BoxPtr()
-        v_result = BoxInt()
+        v_random_box = InputArgRef()
         operations = [
-            ResOperation(rop.PTR_EQ, [v_random_box, ConstPtr(s_gcref)],
-                         v_result),
+            ResOperation(rop.PTR_EQ, [v_random_box, ConstPtr(s_gcref)]),
             ]
         gc_ll_descr = self.gc_ll_descr
         gc_ll_descr.gcrefs = MyFakeGCRefList()
diff --git a/rpython/jit/backend/llsupport/test/test_gc_integration.py b/rpython/jit/backend/llsupport/test/test_gc_integration.py
--- a/rpython/jit/backend/llsupport/test/test_gc_integration.py
+++ b/rpython/jit/backend/llsupport/test/test_gc_integration.py
@@ -58,7 +58,7 @@
     def test_basic(self):
         ops = '''
         [p0]
-        p1 = getfield_gc(p0, descr=fielddescr)
+        p1 = getfield_gc_r(p0, descr=fielddescr)
         finish(p1)
         '''
         self.interpret(ops, [self.struct_ptr])
@@ -67,7 +67,7 @@
     def test_guard(self):
         ops = '''
         [i0, p0, i1, p1]
-        p3 = getfield_gc(p0, descr=fielddescr)
+        p3 = getfield_gc_r(p0, descr=fielddescr)
         guard_true(i0) [p0, i1, p1, p3]
         '''
         s1 = lltype.malloc(self.S)
@@ -99,7 +99,7 @@
     def test_rewrite_constptr(self):
         ops = '''
         []
-        p1 = getfield_gc(ConstPtr(struct_ref), descr=fielddescr)
+        p1 = getfield_gc_r(ConstPtr(struct_ref), descr=fielddescr)
         finish(p1)
         '''
         self.interpret(ops, [])
@@ -111,30 +111,30 @@
         label(i0, i1, i2, i3, i4, i5, i6, i7, i8, descr=targettoken)
         guard_value(i2, 1) [i2, i3, i4, i5, i6, i7, i0, i1, i8]
         guard_class(i4, 138998336) [i4, i5, i6, i7, i0, i1, i8]
-        i11 = getfield_gc(i4, descr=intdescr)
+        i11 = getfield_gc_i(i4, descr=intdescr)
         guard_nonnull(i11) [i4, i5, i6, i7, i0, i1, i11, i8]
-        i13 = getfield_gc(i11, descr=intdescr)
+        i13 = getfield_gc_i(i11, descr=intdescr)
         guard_isnull(i13) [i4, i5, i6, i7, i0, i1, i11, i8]
-        i15 = getfield_gc(i4, descr=intdescr)
+        i15 = getfield_gc_i(i4, descr=intdescr)
         i17 = int_lt(i15, 0)
         guard_false(i17) [i4, i5, i6, i7, i0, i1, i11, i15, i8]
-        i18 = getfield_gc(i11, descr=intdescr)
+        i18 = getfield_gc_i(i11, descr=intdescr)
         i19 = int_ge(i15, i18)
         guard_false(i19) [i4, i5, i6, i7, i0, i1, i11, i15, i8]
         i20 = int_lt(i15, 0)
         guard_false(i20) [i4, i5, i6, i7, i0, i1, i11, i15, i8]
-        i21 = getfield_gc(i11, descr=intdescr)
-        i22 = getfield_gc(i11, descr=intdescr)
+        i21 = getfield_gc_i(i11, descr=intdescr)
+        i22 = getfield_gc_i(i11, descr=intdescr)
         i23 = int_mul(i15, i22)
         i24 = int_add(i21, i23)
-        i25 = getfield_gc(i4, descr=intdescr)
+        i25 = getfield_gc_i(i4, descr=intdescr)
         i27 = int_add(i25, 1)
         setfield_gc(i4, i27, descr=intdescr)
-        i29 = getfield_raw(144839744, descr=intdescr)
+        i29 = getfield_raw_i(144839744, descr=intdescr)
         i31 = int_and(i29, -2141192192)
         i32 = int_is_true(i31)
         guard_false(i32) [i4, i6, i7, i0, i1, i24]
-        i33 = getfield_gc(i0, descr=intdescr)
+        i33 = getfield_gc_i(i0, descr=intdescr)
         guard_value(i33, ConstPtr(ptr0)) [i4, i6, i7, i0, i1, i33, i24]
         jump(i0, i1, 1, 17, i4, ConstPtr(ptr0), i6, i7, i24, descr=targettoken)
         '''
@@ -388,22 +388,22 @@
             self.namespace['ds%i' % i] = cpu.fielddescrof(S2, 's%d' % i)
         ops = '''
         [i0, p0]
-        p1 = getfield_gc(p0, descr=ds0)
-        p2 = getfield_gc(p0, descr=ds1)
-        p3 = getfield_gc(p0, descr=ds2)
-        p4 = getfield_gc(p0, descr=ds3)
-        p5 = getfield_gc(p0, descr=ds4)
-        p6 = getfield_gc(p0, descr=ds5)
-        p7 = getfield_gc(p0, descr=ds6)
-        p8 = getfield_gc(p0, descr=ds7)
-        p9 = getfield_gc(p0, descr=ds8)
-        p10 = getfield_gc(p0, descr=ds9)
-        p11 = getfield_gc(p0, descr=ds10)
-        p12 = getfield_gc(p0, descr=ds11)
-        p13 = getfield_gc(p0, descr=ds12)
-        p14 = getfield_gc(p0, descr=ds13)
-        p15 = getfield_gc(p0, descr=ds14)
-        p16 = getfield_gc(p0, descr=ds15)
+        p1 = getfield_gc_r(p0, descr=ds0)
+        p2 = getfield_gc_r(p0, descr=ds1)
+        p3 = getfield_gc_r(p0, descr=ds2)
+        p4 = getfield_gc_r(p0, descr=ds3)
+        p5 = getfield_gc_r(p0, descr=ds4)
+        p6 = getfield_gc_r(p0, descr=ds5)
+        p7 = getfield_gc_r(p0, descr=ds6)
+        p8 = getfield_gc_r(p0, descr=ds7)
+        p9 = getfield_gc_r(p0, descr=ds8)
+        p10 = getfield_gc_r(p0, descr=ds9)
+        p11 = getfield_gc_r(p0, descr=ds10)
+        p12 = getfield_gc_r(p0, descr=ds11)
+        p13 = getfield_gc_r(p0, descr=ds12)
+        p14 = getfield_gc_r(p0, descr=ds13)
+        p15 = getfield_gc_r(p0, descr=ds14)
+        p16 = getfield_gc_r(p0, descr=ds15)
         #
         # now all registers are in use
         p17 = call_malloc_nursery(40)
@@ -664,12 +664,12 @@
         loop = self.parse("""
         [p0, p1, p2]
         pf = force_token() # this is the frame
-        call(ConstClass(check_adr), pf, descr=checkdescr) # this can collect
-        p3 = getfield_gc(p0, descr=fielddescr)
+        call_n(ConstClass(check_adr), pf, descr=checkdescr) # this can collect
+        p3 = getfield_gc_r(p0, descr=fielddescr)
         pf2 = force_token()
-        call(ConstClass(check2_adr), pf2, descr=checkdescr)
+        call_n(ConstClass(check2_adr), pf2, descr=checkdescr)
         guard_nonnull(p3, descr=faildescr) [p0, p1, p2, p3]
-        p4 = getfield_gc(p0, descr=fielddescr)
+        p4 = getfield_gc_r(p0, descr=fielddescr)
         finish(p4, descr=finaldescr)
         """, namespace={'finaldescr': BasicFinalDescr(),
                         'faildescr': BasicFailDescr(),
@@ -737,7 +737,7 @@
         loop = self.parse("""
         [f0]
         i = force_token()
-        f1 = call(ConstClass(fptr), i, f0, descr=calldescr)
+        f1 = call_f(ConstClass(fptr), i, f0, descr=calldescr)
         finish(f1, descr=finaldescr)
         """, namespace={'fptr': fptr, 'calldescr': calldescr,
                         'finaldescr': BasicFinalDescr(1)})
@@ -754,7 +754,7 @@
 
     def test_malloc_1(self):
         cpu = self.cpu
-        sizeof = cpu.sizeof(self.S)
+        sizeof = cpu.sizeof(self.S, False)
         sizeof.tid = 0
         size = sizeof.size
         loop = self.parse("""
@@ -856,11 +856,11 @@
         loop = self.parse("""
         [i0, p0]
         pf = force_token()
-        p1 = getarrayitem_gc(p0, 0, descr=arraydescr)
-        p2 = getarrayitem_gc(p0, 1, descr=arraydescr)
-        p3 = getarrayitem_gc(p0, 2, descr=arraydescr)
-        pdying = getarrayitem_gc(p0, 0, descr=arraydescr)
-        px = call_may_force(ConstClass(fptr), pf, pdying, i0, descr=calldescr)
+        p1 = getarrayitem_gc_r(p0, 0, descr=arraydescr)
+        p2 = getarrayitem_gc_r(p0, 1, descr=arraydescr)
+        p3 = getarrayitem_gc_r(p0, 2, descr=arraydescr)
+        pdying = getarrayitem_gc_r(p0, 0, descr=arraydescr)
+        px = call_may_force_r(ConstClass(fptr), pf, pdying, i0, descr=calldescr)
         guard_not_forced(descr=faildescr) [p1, p2, p3, px]
         finish(px, descr=finaldescr)
         """, namespace={'fptr': fptr, 'calldescr': calldescr,
@@ -900,11 +900,11 @@
         loop = self.parse("""
         [i0, p0]
         pf = force_token()
-        p1 = getarrayitem_gc(p0, 0, descr=arraydescr)
-        p2 = getarrayitem_gc(p0, 1, descr=arraydescr)
-        p3 = getarrayitem_gc(p0, 2, descr=arraydescr)
-        pdying = getarrayitem_gc(p0, 0, descr=arraydescr)
-        px = call(ConstClass(fptr), pf, pdying, i0, descr=calldescr)
+        p1 = getarrayitem_gc_r(p0, 0, descr=arraydescr)
+        p2 = getarrayitem_gc_r(p0, 1, descr=arraydescr)
+        p3 = getarrayitem_gc_r(p0, 2, descr=arraydescr)
+        pdying = getarrayitem_gc_r(p0, 0, descr=arraydescr)
+        px = call_r(ConstClass(fptr), pf, pdying, i0, descr=calldescr)
         guard_false(i0, descr=faildescr) [p1, p2, p3, px]
         finish(px, descr=finaldescr)
         """, namespace={'fptr': fptr, 'calldescr': calldescr,
diff --git a/rpython/jit/backend/llsupport/test/test_pinned_object_rewrite.py b/rpython/jit/backend/llsupport/test/test_pinned_object_rewrite.py
--- a/rpython/jit/backend/llsupport/test/test_pinned_object_rewrite.py
+++ b/rpython/jit/backend/llsupport/test/test_pinned_object_rewrite.py
@@ -116,20 +116,21 @@
             lambda cpu: True)
         #
         class FakeCPU(BaseFakeCPU):
-            def sizeof(self, STRUCT):
+            def sizeof(self, STRUCT, is_object):
                 descr = SizeDescrWithVTable(104)
                 descr.tid = 9315
+                descr.vtable = 12
                 return descr
         self.cpu = FakeCPU()
 
     def test_simple_getfield(self):
         self.check_rewrite("""
             []
-            i0 = getfield_gc(ConstPtr(pinned_obj_gcref), descr=pinned_obj_my_int_descr)
+            i0 = getfield_gc_i(ConstPtr(pinned_obj_gcref), descr=pinned_obj_my_int_descr)
             """, """
             []
-            p1 = getarrayitem_gc(ConstPtr(ptr_array_gcref), 0, descr=ptr_array_descr)
-            i0 = getfield_gc(p1, descr=pinned_obj_my_int_descr)
+            p1 = getarrayitem_gc_r(ConstPtr(ptr_array_gcref), 0, descr=ptr_array_descr)
+            i0 = getfield_gc_i(p1, descr=pinned_obj_my_int_descr)
             """)
         assert len(self.gc_ll_descr.last_moving_obj_tracker._indexes) == 1
 
diff --git a/rpython/jit/backend/llsupport/test/test_recompilation.py b/rpython/jit/backend/llsupport/test/test_recompilation.py
--- a/rpython/jit/backend/llsupport/test/test_recompilation.py
+++ b/rpython/jit/backend/llsupport/test/test_recompilation.py
@@ -87,8 +87,8 @@
         loop = self.interpret('''
         [i0, i1, i2, i31, i32, i33]
         label(i0, i1, i2, i31, i32, i33, descr=targettoken)
-        i98 = same_as(0)
-        i99 = same_as(1)
+        i98 = same_as_i(0)
+        i99 = same_as_i(1)
         i30 = int_add(i1, i2)
         i3 = int_add(i0, 1)
         i4 = int_and(i3, 1)
@@ -137,8 +137,8 @@
         loop = self.interpret('''
         [i0, i1, i2]
         label(i0, i1, i2, descr=targettoken)
-        i98 = same_as(0)
-        i99 = same_as(1)
+        i98 = same_as_i(0)
+        i99 = same_as_i(1)
         i3 = int_add(i0, 1)
         i4 = int_and(i3, 1)
         guard_false(i4) [i98, i3]
diff --git a/rpython/jit/backend/llsupport/test/test_regalloc.py b/rpython/jit/backend/llsupport/test/test_regalloc.py
--- a/rpython/jit/backend/llsupport/test/test_regalloc.py
+++ b/rpython/jit/backend/llsupport/test/test_regalloc.py
@@ -1,20 +1,21 @@
 import py
-from rpython.jit.metainterp.history import BoxInt, ConstInt, BoxFloat, INT, FLOAT,\
-     BoxPtr
+from rpython.jit.metainterp.history import ConstInt, INT, FLOAT
 from rpython.jit.backend.llsupport.regalloc import FrameManager, LinkedList
 from rpython.jit.backend.llsupport.regalloc import RegisterManager as BaseRegMan
+from rpython.jit.metainterp.resoperation import InputArgInt, InputArgRef,\
+     InputArgFloat
 
 def newboxes(*values):
-    return [BoxInt(v) for v in values]
+    return [InputArgInt(v) for v in values]
 
 def newrefboxes(count):
-    return [BoxPtr() for _ in range(count)]
+    return [InputArgRef() for _ in range(count)]
 
 def boxes_and_longevity(num):
     res = []
     longevity = {}
     for i in range(num):
-        box = BoxInt(0)
+        box = InputArgInt(0)
         res.append(box)
         longevity[box] = (0, 1)
     return res, longevity
@@ -348,11 +349,11 @@
             pass
 
         fm = TFrameManager()
-        b0 = BoxInt()
+        b0 = InputArgInt()
         longevity = {b0: (0, 1)}
         asm = MockAsm()
         rm = RegisterManager(longevity, frame_manager=fm, assembler=asm)
-        f0 = BoxFloat()
+        f0 = InputArgFloat()
         longevity = {f0: (0, 1)}
         xrm = XRegisterManager(longevity, frame_manager=fm, assembler=asm)
         xrm.loc(f0)
@@ -474,42 +475,42 @@
         loc0b = fm.loc(b0)
         assert loc0b == loc0
         #
-        fm.loc(BoxInt())
+        fm.loc(InputArgInt())
         assert fm.get_frame_depth() == 3
         #
-        f0 = BoxFloat()
+        f0 = InputArgFloat()
         locf0 = fm.loc(f0)
         assert fm.get_loc_index(locf0) == 3
         assert fm.get_frame_depth() == 4
         #
-        f1 = BoxFloat()
+        f1 = InputArgFloat()
         locf1 = fm.loc(f1)
         assert fm.get_loc_index(locf1) == 4
         assert fm.get_frame_depth() == 5
         fm.mark_as_free(b1)
         assert fm.freelist
-        b2 = BoxInt()
+        b2 = InputArgInt()
         fm.loc(b2) # should be in the same spot as b1 before
         assert fm.get(b1) is None
         assert fm.get(b2) == loc1
         fm.mark_as_free(b0)
-        p0 = BoxPtr()
+        p0 = InputArgRef()
         ploc = fm.loc(p0)
         assert fm.get_loc_index(ploc) == 0
         assert fm.get_frame_depth() == 5
         assert ploc != loc1
-        p1 = BoxPtr()
+        p1 = InputArgRef()
         p1loc = fm.loc(p1)
         assert fm.get_loc_index(p1loc) == 5
         assert fm.get_frame_depth() == 6
         fm.mark_as_free(p0)
-        p2 = BoxPtr()
+        p2 = InputArgRef()
         p2loc = fm.loc(p2)
         assert p2loc == ploc
         assert len(fm.freelist) == 0
         for box in fm.bindings.keys():
             fm.mark_as_free(box)
-        fm.bind(BoxPtr(), FakeFramePos(3, 'r'))
+        fm.bind(InputArgRef(), FakeFramePos(3, 'r'))
         assert len(fm.freelist) == 6
 
     def test_frame_manager_basic(self):
@@ -526,42 +527,42 @@
         loc0b = fm.loc(b0)
         assert loc0b == loc0
         #
-        fm.loc(BoxInt())
+        fm.loc(InputArgInt())
         assert fm.get_frame_depth() == 3
         #
-        f0 = BoxFloat()
+        f0 = InputArgFloat()
         locf0 = fm.loc(f0)
         # can't be odd
         assert fm.get_loc_index(locf0) == 4
         assert fm.get_frame_depth() == 6
         #
-        f1 = BoxFloat()
+        f1 = InputArgFloat()
         locf1 = fm.loc(f1)
         assert fm.get_loc_index(locf1) == 6
         assert fm.get_frame_depth() == 8
         fm.mark_as_free(b1)
         assert fm.freelist
-        b2 = BoxInt()
+        b2 = InputArgInt()
         fm.loc(b2) # should be in the same spot as b1 before
         assert fm.get(b1) is None
         assert fm.get(b2) == loc1
         fm.mark_as_free(b0)
-        p0 = BoxPtr()
+        p0 = InputArgRef()
         ploc = fm.loc(p0)
         assert fm.get_loc_index(ploc) == 0
         assert fm.get_frame_depth() == 8
         assert ploc != loc1
-        p1 = BoxPtr()
+        p1 = InputArgRef()
         p1loc = fm.loc(p1)
         assert fm.get_loc_index(p1loc) == 3
         assert fm.get_frame_depth() == 8
         fm.mark_as_free(p0)
-        p2 = BoxPtr()
+        p2 = InputArgRef()
         p2loc = fm.loc(p2)
         assert p2loc == ploc
         assert len(fm.freelist) == 0
         fm.mark_as_free(b2)
-        f3 = BoxFloat()
+        f3 = InputArgFloat()
         fm.mark_as_free(p2)
         floc = fm.loc(f3)
         assert fm.get_loc_index(floc) == 0
diff --git a/rpython/jit/backend/llsupport/test/test_regalloc_integration.py b/rpython/jit/backend/llsupport/test/test_regalloc_integration.py
--- a/rpython/jit/backend/llsupport/test/test_regalloc_integration.py
+++ b/rpython/jit/backend/llsupport/test/test_regalloc_integration.py
@@ -219,14 +219,14 @@
     def test_exception_bridge_no_exception(self):
         ops = '''
         [i0]
-        i1 = same_as(1)
-        call(ConstClass(raising_fptr), i0, descr=raising_calldescr)
+        i1 = same_as_i(1)
+        call_n(ConstClass(raising_fptr), i0, descr=raising_calldescr)
         guard_exception(ConstClass(zero_division_error)) [i1]
         finish(0)
         '''
         bridge_ops = '''
         [i3]
-        i2 = same_as(2)
+        i2 = same_as_i(2)
         guard_no_exception() [i2]
         finish(1)
         '''
@@ -382,7 +382,7 @@
     def test_bug_wrong_stack_adj(self):
         ops = '''
         [i0, i1, i2, i3, i4, i5, i6, i7, i8]
-        i9 = same_as(0)
+        i9 = same_as_i(0)
         guard_true(i0) [i9, i0, i1, i2, i3, i4, i5, i6, i7, i8]
         finish(1)
         '''
@@ -390,7 +390,7 @@
         assert self.getint(0) == 0
         bridge_ops = '''
         [i9, i0, i1, i2, i3, i4, i5, i6, i7, i8]
-        call(ConstClass(raising_fptr), 0, descr=raising_calldescr)
+        call_n(ConstClass(raising_fptr), 0, descr=raising_calldescr)
         guard_true(i9) [i0, i1, i2, i3, i4, i5, i6, i7, i8]
         finish()
         '''
@@ -415,7 +415,7 @@
     def test_cmp_op_0(self):
         ops = '''
         [i0, i3]
-        i1 = same_as(1)
+        i1 = same_as_i(1)
         i2 = int_lt(i0, 100)
         guard_true(i3) [i1, i2]
         i4 = int_neg(i2)
@@ -525,7 +525,7 @@
         ops = '''
         [f0, f1]
         f2 = float_add(f0, f1)
-        i0 = same_as(0)
+        i0 = same_as_i(0)
         guard_true(i0) [f2, f0, f1]
         finish()
         '''
@@ -537,7 +537,7 @@
         [f0, f1, f2, f3, f4, f5, f6, f7, f8]
         f9 = float_add(f0, f1)
         f10 = float_add(f8, 3.5)
-        i0 = same_as(0)
+        i0 = same_as_i(0)
         guard_true(i0) [f9, f10, f2, f3, f4, f5, f6, f7, f8]
         finish()
         '''
diff --git a/rpython/jit/backend/llsupport/test/test_rewrite.py b/rpython/jit/backend/llsupport/test/test_rewrite.py
--- a/rpython/jit/backend/llsupport/test/test_rewrite.py
+++ b/rpython/jit/backend/llsupport/test/test_rewrite.py
@@ -24,6 +24,8 @@
 class FakeLoopToken(object):
     pass
 
+o_vtable = lltype.malloc(rclass.OBJECT_VTABLE, immortal=True)
+
 class RewriteTests(object):
     def check_rewrite(self, frm_operations, to_operations, **namespace):
         S = lltype.GcStruct('S', ('x', lltype.Signed),
@@ -60,8 +62,8 @@
         vtable_descr = self.gc_ll_descr.fielddescr_vtable
         O = lltype.GcStruct('O', ('parent', rclass.OBJECT),
                                  ('x', lltype.Signed))
-        o_vtable = lltype.malloc(rclass.OBJECT_VTABLE, immortal=True)
         o_descr = self.cpu.sizeof(O, True)
+        o_vtable = globals()['o_vtable']
         register_known_gctype(self.cpu, o_vtable, O)
         #
         tiddescr = self.gc_ll_descr.fielddescr_tid
@@ -164,7 +166,7 @@
             def sizeof(self, STRUCT, is_object):
                 assert is_object
                 return SizeDescrWithVTable(102, gc_fielddescrs=[],
-                                           vtable=12)
+                                           vtable=o_vtable)
         self.cpu = FakeCPU()
         self.gc_ll_descr = GcLLDescr_boehm(None, None, None)
 
@@ -241,7 +243,7 @@
             [p1]
             p0 = call_malloc_gc(ConstClass(malloc_fixedsize), 102, \
                                 descr=malloc_fixedsize_descr)
-            setfield_gc(p0, 12, descr=vtable_descr)
+            setfield_gc(p0, ConstClass(o_vtable), descr=vtable_descr)
             jump()
         """)
 
diff --git a/rpython/jit/backend/test/runner_test.py b/rpython/jit/backend/test/runner_test.py
--- a/rpython/jit/backend/test/runner_test.py
+++ b/rpython/jit/backend/test/runner_test.py
@@ -2861,15 +2861,16 @@
                         rffi.RFFI_SAVE_ERRNO | rffi.RFFI_ALT_ERRNO,
                         ]:
             faildescr = BasicFailDescr(1)
-            inputargs = [BoxInt() for i in range(7)]
-            i1 = BoxInt()
+            inputargs = [InputArgInt() for i in range(7)]
+            op0 = ResOperation(rop.CALL_RELEASE_GIL_I,
+                             [ConstInt(saveerr), ConstInt(func1_adr)]
+                                 + inputargs,
+                             descr=calldescr),
+
             ops = [
-                ResOperation(rop.CALL_RELEASE_GIL,
-                             [ConstInt(saveerr), ConstInt(func1_adr)]
-                                 + inputargs, i1,
-                             descr=calldescr),
-                ResOperation(rop.GUARD_NOT_FORCED, [], None, descr=faildescr),
-                ResOperation(rop.FINISH, [i1], None, descr=BasicFinalDescr(0))
+                op0,
+                ResOperation(rop.GUARD_NOT_FORCED, [], descr=faildescr),
+                ResOperation(rop.FINISH, [op0], descr=BasicFinalDescr(0))
             ]
             ops[-2].setfailargs([])
             looptoken = JitCellToken()
@@ -2932,15 +2933,15 @@
                         rffi.RFFI_ZERO_ERRNO_BEFORE | rffi.RFFI_ALT_ERRNO,
                         ]:
             faildescr = BasicFailDescr(1)
-            inputargs = [BoxInt() for i in range(7)]
-            i1 = BoxInt()
+            inputargs = [InputArgInt() for i in range(7)]
+            op0 = ResOperation(rop.CALL_RELEASE_GIL_I,
+                             [ConstInt(saveerr), ConstInt(func1_adr)]
+                                 + inputargs,
+                             descr=calldescr),
+
             ops = [
-                ResOperation(rop.CALL_RELEASE_GIL,
-                             [ConstInt(saveerr), ConstInt(func1_adr)]
-                                 + inputargs, i1,
-                             descr=calldescr),
-                ResOperation(rop.GUARD_NOT_FORCED, [], None, descr=faildescr),
-                ResOperation(rop.FINISH, [i1], None, descr=BasicFinalDescr(0))
+                ResOperation(rop.GUARD_NOT_FORCED, [], descr=faildescr),
+                ResOperation(rop.FINISH, [op0], descr=BasicFinalDescr(0))
             ]
             ops[-2].setfailargs([])
             looptoken = JitCellToken()
@@ -3136,15 +3137,16 @@
                        ]:
             use_alt_errno = saveerr & rffi.RFFI_ALT_ERRNO
             faildescr = BasicFailDescr(1)
-            inputargs = [BoxInt() for i in range(7)]
-            i1 = BoxInt()
+            inputargs = [InputArgInt() for i in range(7)]
+            op0 = ResOperation(rop.CALL_RELEASE_GIL_I,
+                             [ConstInt(saveerr), ConstInt(func1_adr)]
+                                 + inputargs,
+                             descr=calldescr),
+
             ops = [
-                ResOperation(rop.CALL_RELEASE_GIL,
-                             [ConstInt(saveerr), ConstInt(func1_adr)]
-                                 + inputargs, i1,
-                             descr=calldescr),
-                ResOperation(rop.GUARD_NOT_FORCED, [], None, descr=faildescr),
-                ResOperation(rop.FINISH, [i1], None, descr=BasicFinalDescr(0))
+                op0,
+                ResOperation(rop.GUARD_NOT_FORCED, [], descr=faildescr),
+                ResOperation(rop.FINISH, [op0], descr=BasicFinalDescr(0))
             ]
             ops[-2].setfailargs([])
             looptoken = JitCellToken()
diff --git a/rpython/jit/backend/x86/regalloc.py b/rpython/jit/backend/x86/regalloc.py
--- a/rpython/jit/backend/x86/regalloc.py
+++ b/rpython/jit/backend/x86/regalloc.py
@@ -896,7 +896,7 @@
         #
         # We need edi as a temporary, but otherwise don't save any more
         # register.  See comments in _build_malloc_slowpath().
-        tmp_box = TempBox()
+        tmp_box = TempVar()
         self.rm.force_allocate_reg(tmp_box, selected_reg=edi)
         gcmap = self.get_gcmap([eax, edi]) # allocate the gcmap *before*
         self.rm.possibly_free_var(tmp_box)
@@ -909,7 +909,7 @@
 
     def consider_call_malloc_nursery_varsize_frame(self, op):
         size_box = op.getarg(0)
-        assert isinstance(size_box, BoxInt) # we cannot have a const here!
+        assert not isinstance(size_box, Const) # we cannot have a const here!
         # sizeloc must be in a register, but we can free it now
         # (we take care explicitly of conflicts with eax or edi)
         sizeloc = self.rm.make_sure_var_in_reg(size_box)
@@ -917,7 +917,7 @@
         # the result will be in eax
         self.rm.force_allocate_reg(op, selected_reg=eax)
         # we need edi as a temporary
-        tmp_box = TempBox()
+        tmp_box = TempVar()
         self.rm.force_allocate_reg(tmp_box, selected_reg=edi)
         gcmap = self.get_gcmap([eax, edi]) # allocate the gcmap *before*
         self.rm.possibly_free_var(tmp_box)
@@ -935,11 +935,11 @@
             # for boehm, this function should never be called
         arraydescr = op.getdescr()
         length_box = op.getarg(2)
-        assert isinstance(length_box, BoxInt) # we cannot have a const here!
+        assert not isinstance(length_box, Const) # we cannot have a const here!
         # the result will be in eax
         self.rm.force_allocate_reg(op, selected_reg=eax)
         # we need edi as a temporary
-        tmp_box = TempBox()
+        tmp_box = TempVar()
         self.rm.force_allocate_reg(tmp_box, selected_reg=edi)
         gcmap = self.get_gcmap([eax, edi]) # allocate the gcmap *before*
         self.rm.possibly_free_var(tmp_box)
diff --git a/rpython/jit/codewriter/heaptracker.py b/rpython/jit/codewriter/heaptracker.py
--- a/rpython/jit/codewriter/heaptracker.py
+++ b/rpython/jit/codewriter/heaptracker.py
@@ -69,8 +69,9 @@
     if not hasattr(cpu, '_cache_gcstruct2vtable'):
         cache = {}
         cache.update(testing_gcstruct2vtable)
-        for rinstance in cpu.rtyper.instance_reprs.values():
-            cache[rinstance.lowleveltype.TO] = rinstance.rclass.getvtable()
+        if cpu.rtyper:
+            for rinstance in cpu.rtyper.instance_reprs.values():
+                cache[rinstance.lowleveltype.TO] = rinstance.rclass.getvtable()
         cpu._cache_gcstruct2vtable = cache
 
 def set_testing_vtable_for_gcstruct(GCSTRUCT, vtable, name):


More information about the pypy-commit mailing list