Author: Armin Rigo <ar...@tunes.org> Branch: Changeset: r81445:39e277d9a468 Date: 2015-12-24 22:37 +0100 http://bitbucket.org/pypy/pypy/changeset/39e277d9a468/
Log: clean-up: reduce the frequency of 'gc_(load,store)_indexed', which right now is used even for get/setfield, which makes little sense diff --git a/rpython/jit/backend/llsupport/rewrite.py b/rpython/jit/backend/llsupport/rewrite.py --- a/rpython/jit/backend/llsupport/rewrite.py +++ b/rpython/jit/backend/llsupport/rewrite.py @@ -126,11 +126,11 @@ def emit_gc_store_or_indexed(self, op, ptr_box, index_box, value_box, itemsize, factor, offset): factor, offset, index_box = \ - self._emit_mul_add_if_factor_offset_not_supported(index_box, + self._emit_mul_if_factor_offset_not_supported(index_box, factor, offset) # - if factor == 1 and offset == 0: - args = [ptr_box, index_box, value_box, ConstInt(itemsize)] + if index_box is None: + args = [ptr_box, ConstInt(offset), value_box, ConstInt(itemsize)] newload = ResOperation(rop.GC_STORE, args) else: args = [ptr_box, index_box, value_box, ConstInt(factor), @@ -153,18 +153,15 @@ index_box = op.getarg(1) self.emit_gc_load_or_indexed(op, ptr_box, index_box, itemsize, 1, ofs, sign) - def _emit_mul_add_if_factor_offset_not_supported(self, index_box, factor, offset): - orig_factor = factor - # factor - must_manually_load_const = False # offset != 0 and not self.cpu.load_constant_offset - if factor != 1 and (factor not in self.cpu.load_supported_factors or \ - (not index_box.is_constant() and must_manually_load_const)): - # enter here if the factor is supported by the cpu - # OR the index is not constant and a new resop must be emitted - # to add the offset - if isinstance(index_box, ConstInt): - index_box = ConstInt(index_box.value * factor) - else: + def _emit_mul_if_factor_offset_not_supported(self, index_box, + factor, offset): + # Returns (factor, offset, index_box) where index_box is either + # a non-constant BoxInt or None. + if isinstance(index_box, ConstInt): + return 1, index_box.value * factor + offset, None + else: + if factor != 1 and factor not in self.cpu.load_supported_factors: + # the factor is supported by the cpu # x & (x - 1) == 0 is a quick test for power of 2 assert factor > 0 if (factor & (factor - 1)) == 0: @@ -174,20 +171,13 @@ index_box = ResOperation(rop.INT_MUL, [index_box, ConstInt(factor)]) self.emit_op(index_box) - factor = 1 - # adjust the constant offset - #if must_manually_load_const: - # if isinstance(index_box, ConstInt): - # index_box = ConstInt(index_box.value + offset) - # else: - # index_box = ResOperation(rop.INT_ADD, [index_box, ConstInt(offset)]) - # self.emit_op(index_box) - # offset = 0 - return factor, offset, index_box + factor = 1 + return factor, offset, index_box - def emit_gc_load_or_indexed(self, op, ptr_box, index_box, itemsize, factor, offset, sign, type='i'): + def emit_gc_load_or_indexed(self, op, ptr_box, index_box, itemsize, + factor, offset, sign, type='i'): factor, offset, index_box = \ - self._emit_mul_add_if_factor_offset_not_supported(index_box, + self._emit_mul_if_factor_offset_not_supported(index_box, factor, offset) # if sign: @@ -197,8 +187,8 @@ optype = type if op is not None: optype = op.type - if factor == 1 and offset == 0: - args = [ptr_box, index_box, ConstInt(itemsize)] + if index_box is None: + args = [ptr_box, ConstInt(offset), ConstInt(itemsize)] newload = ResOperation(OpHelpers.get_gc_load(optype), args) else: args = [ptr_box, index_box, ConstInt(factor), @@ -547,9 +537,8 @@ ofs, size, sign = unpack_fielddescr(descrs.jfi_frame_depth) if sign: size = -size - args = [ConstInt(frame_info), ConstInt(0), ConstInt(1), - ConstInt(ofs), ConstInt(size)] - size = ResOperation(rop.GC_LOAD_INDEXED_I, args) + args = [ConstInt(frame_info), ConstInt(ofs), ConstInt(size)] + size = ResOperation(rop.GC_LOAD_I, args) self.emit_op(size) frame = ResOperation(rop.NEW_ARRAY, [size], descr=descrs.arraydescr) @@ -560,9 +549,8 @@ ofs, size, sign = unpack_fielddescr(descrs.jfi_frame_size) if sign: size = -size - args = [ConstInt(frame_info), ConstInt(0), ConstInt(1), - ConstInt(ofs), ConstInt(size)] - size = ResOperation(rop.GC_LOAD_INDEXED_I, args) + args = [ConstInt(frame_info), ConstInt(ofs), ConstInt(size)] + size = ResOperation(rop.GC_LOAD_I, args) self.emit_op(size) frame = self.gen_malloc_nursery_varsize_frame(size) self.gen_initialize_tid(frame, descrs.arraydescr.tid) @@ -612,15 +600,12 @@ descr = self.cpu.getarraydescr_for_frame(arg.type) assert self.cpu.JITFRAME_FIXED_SIZE & 1 == 0 _, itemsize, _ = self.cpu.unpack_arraydescr_size(descr) - index = index_list[i] // itemsize # index is in bytes - # emit GC_LOAD_INDEXED - itemsize, basesize, _ = unpack_arraydescr(descr) - factor, offset, index_box = \ - self._emit_mul_add_if_factor_offset_not_supported(ConstInt(index), - itemsize, basesize) - args = [frame, index_box, arg, ConstInt(factor), - ConstInt(offset), ConstInt(itemsize)] - self.emit_op(ResOperation(rop.GC_STORE_INDEXED, args)) + array_offset = index_list[i] # index, already measured in bytes + # emit GC_STORE + _, basesize, _ = unpack_arraydescr(descr) + offset = basesize + array_offset + args = [frame, ConstInt(offset), arg, ConstInt(itemsize)] + self.emit_op(ResOperation(rop.GC_STORE, args)) descr = op.getdescr() assert isinstance(descr, JitCellToken) 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 @@ -30,13 +30,26 @@ class RewriteTests(object): def check_rewrite(self, frm_operations, to_operations, **namespace): - def trans_getarray_to_load(descr): - size = descr.basesize - if descr.is_item_signed(): - size = -size - return ','.join([str(n) for n in [descr.itemsize, - descr.basesize, - size]]) + def setfield(baseptr, newvalue, descr): + assert isinstance(baseptr, str) + assert isinstance(newvalue, (str, int)) + assert not isinstance(descr, (str, int)) + return 'gc_store(%s, %d, %s, %d)' % (baseptr, descr.offset, + newvalue, descr.field_size) + def setarrayitem(baseptr, index, newvalue, descr): + assert isinstance(baseptr, str) + assert isinstance(index, (str, int)) + assert isinstance(newvalue, (str, int)) + assert not isinstance(descr, (str, int)) + if isinstance(index, int): + offset = descr.basesize + index * descr.itemsize + return 'gc_store(%s, %d, %s, %d)' % (baseptr, offset, + newvalue, descr.itemsize) + else: + return 'gc_store_indexed(%s, %s, %s, %d, %d, %s)' % ( + baseptr, index, newvalue, + descr.itemsize, descr.basesize, descr.itemsize) + # WORD = globals()['WORD'] S = lltype.GcStruct('S', ('x', lltype.Signed), ('y', lltype.Signed)) @@ -376,7 +389,7 @@ gc_store(p1, 0, 5678, 8) p2 = nursery_ptr_increment(p1, %(tdescr.size)d) gc_store(p2, 0, 1234, 8) - gc_store(p1, %(tdescr.gc_fielddescrs[0].offset)s, 0, %(tdescr.gc_fielddescrs[0].offset)s) + %(setfield('p1', 0, tdescr.gc_fielddescrs[0]))s jump() """) @@ -485,7 +498,7 @@ """, """ [i0] p0 = call_malloc_nursery_varsize(1, 1, i0, descr=strdescr) - gc_store_indexed(p0, 0, i0, 1, %(strlendescr.offset)s, %(strlendescr.field_size)s) + gc_store(p0, %(strlendescr.offset)s, i0, %(strlendescr.field_size)s) gc_store(p0, 0, 0, %(strlendescr.field_size)s) jump(i0) """) @@ -611,19 +624,19 @@ %(strdescr.basesize + 16 * strdescr.itemsize + \ unicodedescr.basesize + 10 * unicodedescr.itemsize)d) gc_store(p0, 0, %(strdescr.tid)d, %(tiddescr.field_size)s) - gc_store_indexed(p0, 0, 14, 1, %(strlendescr.offset)s, %(strlendescr.field_size)s) + gc_store(p0, %(strlendescr.offset)s, 14, %(strlendescr.field_size)s) gc_store(p0, 0, 0, %(strhashdescr.field_size)s) p1 = nursery_ptr_increment(p0, %(strdescr.basesize + 16 * strdescr.itemsize)d) gc_store(p1, 0, %(unicodedescr.tid)d, %(tiddescr.field_size)s) - gc_store_indexed(p1, 0, 10, 1, %(unicodelendescr.offset)s, %(unicodelendescr.field_size)s) + gc_store(p1, %(unicodelendescr.offset)s, 10, %(unicodelendescr.field_size)s) gc_store(p1, 0, 0, %(unicodehashdescr.field_size)s) p2 = call_malloc_nursery_varsize(2, %(unicodedescr.itemsize)d, i2,\ descr=unicodedescr) - gc_store_indexed(p2, 0, i2, 1, %(unicodelendescr.offset)s, %(unicodelendescr.field_size)s) + gc_store(p2, %(unicodelendescr.offset)s, i2, %(unicodelendescr.field_size)s) gc_store(p2, 0, 0, %(unicodehashdescr.field_size)s) p3 = call_malloc_nursery_varsize(1, 1, i2, \ descr=strdescr) - gc_store_indexed(p3, 0, i2, 1, %(strlendescr.offset)s, %(strlendescr.field_size)s) + gc_store(p3, %(strlendescr.offset)s, i2, %(strlendescr.field_size)s) gc_store(p3, 0, 0, %(strhashdescr.field_size)s) jump() """) @@ -636,7 +649,7 @@ """, """ [p1, p2] cond_call_gc_wb(p1, descr=wbdescr) - gc_store_indexed(p1, 0, p2, 1, %(tzdescr.offset)s, %(tzdescr.field_size)s) + gc_store(p1, %(tzdescr.offset)s, p2, %(tzdescr.field_size)s) jump() """) @@ -650,7 +663,7 @@ """, """ [p1, i2, p3] cond_call_gc_wb(p1, descr=wbdescr) - gc_store_indexed(p1, i2, p3, %(trans_getarray_to_load(cdescr))s) + %(setarrayitem('p1', 'i2', 'p3', cdescr))s jump() """) @@ -671,7 +684,7 @@ zero_array(p1, 0, 129, descr=cdescr) call_n(123456) cond_call_gc_wb(p1, descr=wbdescr) - gc_store_indexed(p1, i2, p3, %(trans_getarray_to_load(cdescr))s) + %(setarrayitem('p1', 'i2', 'p3', cdescr))s jump() """) @@ -693,7 +706,7 @@ zero_array(p1, 0, 130, descr=cdescr) call_n(123456) cond_call_gc_wb_array(p1, i2, descr=wbdescr) - gc_store_indexed(p1, i2, p3, %(trans_getarray_to_load(cdescr))s) + %(setarrayitem('p1', 'i2', 'p3', cdescr))s jump() """) @@ -705,7 +718,7 @@ """, """ [p1, i2, p3] cond_call_gc_wb_array(p1, i2, descr=wbdescr) - gc_store_indexed(p1, i2, p3, %(trans_getarray_to_load(cdescr))s) + %(setarrayitem('p1', 'i2', 'p3', cdescr))s jump() """) @@ -725,7 +738,7 @@ zero_array(p1, 0, 5, descr=cdescr) label(p1, i2, p3) cond_call_gc_wb_array(p1, i2, descr=wbdescr) - gc_store_indexed(p1, i2, p3, %(trans_getarray_to_load(cdescr))s) + %(setarrayitem('p1', 'i2', 'p3', cdescr))s jump() """) @@ -743,12 +756,12 @@ size = interiorzdescr.arraydescr.itemsize self.check_rewrite(""" [p1, p2] - setinteriorfield_gc(p1, 0, p2, descr=interiorzdescr) + setinteriorfield_gc(p1, 7, p2, descr=interiorzdescr) jump(p1, p2) """, """ [p1, p2] - cond_call_gc_wb_array(p1, 0, descr=wbdescr) - gc_store_indexed(p1, 0, p2, %(scale)s, %(offset)s, %(size)s) + cond_call_gc_wb_array(p1, 7, descr=wbdescr) + gc_store(p1, %(offset + 7 * scale)s, p2, %(size)s) jump(p1, p2) """, interiorzdescr=interiorzdescr, scale=scale, offset=offset, size=size) @@ -763,7 +776,7 @@ [p1] p0 = call_malloc_nursery(%(tdescr.size)d) gc_store(p0, 0, 5678, %(tiddescr.field_size)s) - gc_store_indexed(p0, 0, p1, 1, %(tzdescr.offset)s, %(tzdescr.field_size)s) + gc_store(p0, %(tzdescr.offset)s, p1, %(tzdescr.field_size)s) jump() """) @@ -781,7 +794,7 @@ p1 = nursery_ptr_increment(p0, %(tdescr.size)d) gc_store(p1, 0, 1234, %(tiddescr.field_size)s) # <<<no cond_call_gc_wb here>>> - gc_store_indexed(p0, 0, p1, 1, %(tzdescr.offset)s, %(tzdescr.field_size)s) + gc_store(p0, %(tzdescr.offset)s, p1, %(tzdescr.field_size)s) jump() """) @@ -798,7 +811,7 @@ gc_store(p0, 0, 8111, %(tiddescr.field_size)s) gc_store(p0, 0, 5, %(clendescr.field_size)s) zero_array(p0, 0, 5, descr=cdescr) - gc_store_indexed(p0, i2, p1, %(trans_getarray_to_load(cdescr))s) + %(setarrayitem('p0', 'i2', 'p1', cdescr))s jump() """) @@ -816,8 +829,8 @@ gc_store(p0, 0, 8111, %(tiddescr.field_size)s) gc_store(p0, 0, 5, %(clendescr.field_size)s) zero_array(p0, 2, 3, descr=cdescr) - gc_store_indexed(p0, 1, p1, %(trans_getarray_to_load(cdescr))s) - gc_store_indexed(p0, 0, p2, %(trans_getarray_to_load(cdescr))s) + %(setarrayitem('p0', 1, 'p1', cdescr))s + %(setarrayitem('p0', 0, 'p2', cdescr))s jump() """) @@ -835,8 +848,8 @@ gc_store(p0, 0, 8111, %(tiddescr.field_size)s) gc_store(p0, 0, 5, %(clendescr.field_size)s) zero_array(p0, 0, 3, descr=cdescr) - gc_store_indexed(p0, 3, p1, %(trans_getarray_to_load(cdescr))s) - gc_store_indexed(p0, 4, p2, %(trans_getarray_to_load(cdescr))s) + %(setarrayitem('p0', 3, 'p1', cdescr))s + %(setarrayitem('p0', 4, 'p2', cdescr))s jump() """) @@ -855,9 +868,9 @@ gc_store(p0, 0, 8111, %(tiddescr.field_size)s) gc_store(p0, 0, 5, %(clendescr.field_size)s) zero_array(p0, 0, 5, descr=cdescr) - gc_store_indexed(p0, 3, p1, %(trans_getarray_to_load(cdescr))s) - gc_store_indexed(p0, 2, p2, %(trans_getarray_to_load(cdescr))s) - gc_store_indexed(p0, 1, p2, %(trans_getarray_to_load(cdescr))s) + %(setarrayitem('p0', 3, 'p1', cdescr))s + %(setarrayitem('p0', 2, 'p2', cdescr))s + %(setarrayitem('p0', 1, 'p2', cdescr))s jump() """) @@ -878,11 +891,11 @@ gc_store(p0, 0, 8111, %(tiddescr.field_size)s) gc_store(p0, 0, 5, %(clendescr.field_size)s) zero_array(p0, 5, 0, descr=cdescr) - gc_store_indexed(p0, 3, p1, %(trans_getarray_to_load(cdescr))s) - gc_store_indexed(p0, 4, p2, %(trans_getarray_to_load(cdescr))s) - gc_store_indexed(p0, 0, p1, %(trans_getarray_to_load(cdescr))s) - gc_store_indexed(p0, 2, p2, %(trans_getarray_to_load(cdescr))s) - gc_store_indexed(p0, 1, p2, %(trans_getarray_to_load(cdescr))s) + %(setarrayitem('p0', 3, 'p1', cdescr))s + %(setarrayitem('p0', 4, 'p2', cdescr))s + %(setarrayitem('p0', 0, 'p1', cdescr))s + %(setarrayitem('p0', 2, 'p2', cdescr))s + %(setarrayitem('p0', 1, 'p2', cdescr))s jump() """) @@ -901,10 +914,10 @@ gc_store(p0, 0, 8111, %(tiddescr.field_size)s) gc_store(p0, 0, 5, %(clendescr.field_size)s) zero_array(p0, 1, 4, descr=cdescr) - gc_store_indexed(p0, 0, p1, %(trans_getarray_to_load(cdescr))s) + %(setarrayitem('p0', 0, 'p1', cdescr))s call_n(321321) cond_call_gc_wb(p0, descr=wbdescr) - gc_store_indexed(p0, 1, p2, %(trans_getarray_to_load(cdescr))s) + %(setarrayitem('p0', 1, 'p2', cdescr))s jump() """) @@ -923,10 +936,10 @@ gc_store(p0, 0, 8111, %(tiddescr.field_size)s) gc_store(p0, 0, 5, %(clendescr.field_size)s) zero_array(p0, 1, 4, descr=cdescr) - gc_store_indexed(p0, 0, p1, %(trans_getarray_to_load(cdescr))s) + %(setarrayitem('p0', 0, 'p1', cdescr))s label(p0, p2) cond_call_gc_wb_array(p0, 1, descr=wbdescr) - gc_store_indexed(p0, 1, p2, %(trans_getarray_to_load(cdescr))s) + %(setarrayitem('p0', 1, 'p2', cdescr))s jump() """) @@ -955,7 +968,7 @@ gc_store(p0, 0, i3, %(blendescr.field_size)s) zero_array(p0, 0, i3, descr=bdescr) cond_call_gc_wb_array(p0, 0, descr=wbdescr) - gc_store_indexed(p0, 0, p1, 1, %(bdescr.basesize)s, 1) + %(setarrayitem('p0', 0, 'p1', bdescr))s jump() """) @@ -991,10 +1004,10 @@ gc_store(p0, %(tdescr.gc_fielddescrs[0].offset)s, 0, %(tdescr.gc_fielddescrs[0].offset)s) p1 = call_malloc_nursery_varsize(1, 1, i0, \ descr=strdescr) - gc_store_indexed(p1, 0, i0, 1, %(strlendescr.offset)s, %(strlendescr.field_size)s) + gc_store(p1, %(strlendescr.offset)s, i0, %(strlendescr.field_size)s) gc_store(p1, 0, 0, %(strhashdescr.field_size)s) cond_call_gc_wb(p0, descr=wbdescr) - gc_store_indexed(p0, 0, p1, 1, %(tzdescr.offset)s, %(tzdescr.field_size)s) + gc_store(p0, %(tzdescr.offset)s, p1, %(tzdescr.field_size)s) jump() """) @@ -1012,7 +1025,7 @@ gc_store(p0, %(tdescr.gc_fielddescrs[0].offset)s, 0, %(tdescr.gc_fielddescrs[0].offset)s) label(p0, p1) cond_call_gc_wb(p0, descr=wbdescr) - gc_store_indexed(p0, 0, p1, 1, %(tzdescr.offset)s, %(tzdescr.field_size)s) + gc_store(p0, %(tzdescr.offset)s, p1, %(tzdescr.field_size)s) jump() """) @@ -1025,8 +1038,8 @@ """, """ [p0, p1, p2] cond_call_gc_wb(p0, descr=wbdescr) - gc_store_indexed(p0, 0, p1, 1, %(tzdescr.offset)s, %(tzdescr.field_size)s) - gc_store_indexed(p0, 0, p2, 1, %(tzdescr.offset)s, %(tzdescr.field_size)s) + gc_store(p0, %(tzdescr.offset)s, p1, %(tzdescr.field_size)s) + gc_store(p0, %(tzdescr.offset)s, p2, %(tzdescr.field_size)s) jump(p1, p2, p0) """) @@ -1036,20 +1049,20 @@ i2 = call_assembler_i(i0, f0, descr=casmdescr) """, """ [i0, f0] - i1 = gc_load_indexed_i(ConstClass(frame_info), 0, 1, 1, %(jfi_frame_size.field_size)s) + i1 = gc_load_i(ConstClass(frame_info), %(jfi_frame_size.offset)s, %(jfi_frame_size.field_size)s) p1 = call_malloc_nursery_varsize_frame(i1) gc_store(p1, 0, 0, %(tiddescr.field_size)s) - i2 = gc_load_indexed_i(ConstClass(frame_info), 0, 1, 1, %(jfi_frame_depth.field_size)s) - gc_store_indexed(p1, 0, 0, 1, 1, %(jf_extra_stack_depth.field_size)s) - gc_store_indexed(p1, 0, NULL, 1, 1, %(jf_savedata.field_size)s) - gc_store_indexed(p1, 0, NULL, 1, 1, %(jf_force_descr.field_size)s) - gc_store_indexed(p1, 0, NULL, 1, 1, %(jf_descr.field_size)s) - gc_store_indexed(p1, 0, NULL, 1, 1, %(jf_guard_exc.field_size)s) - gc_store_indexed(p1, 0, NULL, 1, 1, %(jf_forward.field_size)s) + i2 = gc_load_i(ConstClass(frame_info), %(jfi_frame_depth.offset)s, %(jfi_frame_depth.field_size)s) + %(setfield('p1', 0, jf_extra_stack_depth))s + %(setfield('p1', 'NULL', jf_savedata))s + %(setfield('p1', 'NULL', jf_force_descr))s + %(setfield('p1', 'NULL', jf_descr))s + %(setfield('p1', 'NULL', jf_guard_exc))s + %(setfield('p1', 'NULL', jf_forward))s gc_store(p1, 0, i2, %(framelendescr.field_size)s) - gc_store_indexed(p1, 0, ConstClass(frame_info), 1, 1, %(jf_frame_info.field_size)s) - gc_store_indexed(p1, 0, i0, 8, 3, 8) - gc_store_indexed(p1, 1, f0, 8, 5, 8) + %(setfield('p1', 'ConstClass(frame_info)', jf_frame_info))s + gc_store(p1, 3, i0, 8) + gc_store(p1, 13, f0, 8) i3 = call_assembler_i(p1, descr=casmdescr) """) @@ -1101,7 +1114,7 @@ p0 = call_malloc_nursery(%(tdescr.size)d) gc_store(p0, 0, 5678, %(tiddescr.field_size)s) gc_store(p0, %(tdescr.gc_fielddescrs[0].offset)s, 0, %(tdescr.gc_fielddescrs[0].offset)s) - p1 = gc_load_indexed_r(p0, 0, 1, %(tzdescr.field_size)s, %(tzdescr.field_size)s) + p1 = gc_load_r(p0, %(tzdescr.offset)s, %(tzdescr.field_size)s) jump(p1) """) @@ -1155,23 +1168,19 @@ # 'i5 = int_add(i1,%(raw_sfdescr.basesize)s);' # 'gc_store(p0,i5,i2,%(raw_sfdescr.itemsize)s)'], [True, (1,2,4,8), 'i3 = getfield_gc_f(p0,descr=ydescr)' '->' - 'i3 = gc_load_indexed_f(p0,0,1,%(ydescr.offset)s,%(ydescr.field_size)s)'], - [True, (1,2,4,8), 'i3 = getfield_gc_f(p0,descr=ydescr)' '->' - 'i3 = gc_load_indexed_f(p0,0,1,%(ydescr.offset)s,%(ydescr.field_size)s)'], - [True, (1,2,4,8), 'i3 = setfield_raw(p0,i1,descr=ydescr)' '->' - 'i3 = gc_store_indexed(p0,0,i1,1,' - '%(ydescr.offset)s,%(ydescr.field_size)s)'], - [True, (1,2,4,8), 'i3 = setfield_gc(p0,p0,descr=zdescr)' '->' + 'i3 = gc_load_f(p0,%(ydescr.offset)s,%(ydescr.field_size)s)'], + [True, (1,2,4,8), 'setfield_raw(p0,i1,descr=ydescr)' '->' + 'gc_store(p0,%(ydescr.offset)s,i1,%(ydescr.field_size)s)'], + [True, (1,2,4,8), 'setfield_gc(p0,p0,descr=zdescr)' '->' 'cond_call_gc_wb(p0, descr=wbdescr);' - 'i3 = gc_store_indexed(p0,0,p0,1,' - '%(zdescr.offset)s,%(zdescr.field_size)s)'], + 'gc_store(p0,%(zdescr.offset)s,p0,%(zdescr.field_size)s)'], [False, (1,), 'i3 = arraylen_gc(p0, descr=adescr)' '->' 'i3 = gc_load_i(p0,0,%(adescr.itemsize)s)'], #[False, (1,), 'i3 = strlen(p0)' '->' # 'i3 = gc_load_i(p0,' # '%(strlendescr.offset)s,%(strlendescr.field_size)s)'], [True, (1,), 'i3 = strlen(p0)' '->' - 'i3 = gc_load_indexed_i(p0,0,1,' + 'i3 = gc_load_i(p0,' '%(strlendescr.offset)s,' '%(strlendescr.field_size)s)'], #[False, (1,), 'i3 = unicodelen(p0)' '->' @@ -1179,7 +1188,7 @@ # '%(unicodelendescr.offset)s,' # '%(unicodelendescr.field_size)s)'], [True, (1,), 'i3 = unicodelen(p0)' '->' - 'i3 = gc_load_indexed_i(p0,0,1,' + 'i3 = gc_load_i(p0,' '%(unicodelendescr.offset)s,' '%(unicodelendescr.field_size)s)'], diff --git a/rpython/jit/metainterp/history.py b/rpython/jit/metainterp/history.py --- a/rpython/jit/metainterp/history.py +++ b/rpython/jit/metainterp/history.py @@ -68,8 +68,8 @@ return box.value def repr_rpython(box, typechars): - return '%s/%s%d' % (box._get_hash_(), typechars, - compute_unique_id(box)) + return '%s/%s' % (box._get_hash_(), typechars, + ) #compute_unique_id(box)) class XxxAbstractValue(object): _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit