Author: Armin Rigo <ar...@tunes.org> Branch: counter-decay Changeset: r50759:5330b853e079 Date: 2011-12-20 14:54 +0000 http://bitbucket.org/pypy/pypy/changeset/5330b853e079/
Log: hg merge default diff --git a/pypy/jit/backend/llsupport/descr.py b/pypy/jit/backend/llsupport/descr.py --- a/pypy/jit/backend/llsupport/descr.py +++ b/pypy/jit/backend/llsupport/descr.py @@ -425,7 +425,15 @@ self.arg_classes.count('L')) == len(args_f or ()) def repr_of_descr(self): - return '<CallDescr(%s,%s)>' % (self.arg_classes, self.result_type) + res = 'Call%s %d' % (self.result_type, self.result_size) + if self.arg_classes: + res += ' ' + self.arg_classes + if self.extrainfo: + res += ' EF=%d' % self.extrainfo.extraeffect + oopspecindex = self.extrainfo.oopspecindex + if oopspecindex: + res += ' OS=%d' % oopspecindex + return '<%s>' % res def map_type_to_argclass(ARG, accept_void=False): diff --git a/pypy/jit/backend/llsupport/test/test_descr.py b/pypy/jit/backend/llsupport/test/test_descr.py --- a/pypy/jit/backend/llsupport/test/test_descr.py +++ b/pypy/jit/backend/llsupport/test/test_descr.py @@ -313,6 +313,10 @@ def test_repr_of_descr(): + def repr_of_descr(descr): + s = descr.repr_of_descr() + assert ',' not in s # makes the life easier for pypy.tool.jitlogparser + return s c0 = GcCache(False) T = lltype.GcStruct('T') S = lltype.GcStruct('S', ('x', lltype.Char), @@ -320,34 +324,34 @@ ('z', lltype.Ptr(T))) descr1 = get_size_descr(c0, S) s = symbolic.get_size(S, False) - assert descr1.repr_of_descr() == '<SizeDescr %d>' % s + assert repr_of_descr(descr1) == '<SizeDescr %d>' % s # descr2 = get_field_descr(c0, S, 'y') o, _ = symbolic.get_field_token(S, 'y', False) - assert descr2.repr_of_descr() == '<FieldP S.y %d>' % o + assert repr_of_descr(descr2) == '<FieldP S.y %d>' % o # descr2i = get_field_descr(c0, S, 'x') o, _ = symbolic.get_field_token(S, 'x', False) - assert descr2i.repr_of_descr() == '<FieldU S.x %d>' % o + assert repr_of_descr(descr2i) == '<FieldU S.x %d>' % o # descr3 = get_array_descr(c0, lltype.GcArray(lltype.Ptr(S))) o = symbolic.get_size(lltype.Ptr(S), False) - assert descr3.repr_of_descr() == '<ArrayP %d>' % o + assert repr_of_descr(descr3) == '<ArrayP %d>' % o # descr3i = get_array_descr(c0, lltype.GcArray(lltype.Char)) - assert descr3i.repr_of_descr() == '<ArrayU 1>' + assert repr_of_descr(descr3i) == '<ArrayU 1>' # descr4 = get_call_descr(c0, [lltype.Char, lltype.Ptr(S)], lltype.Ptr(S)) - assert descr4.repr_of_descr() == '<CallDescr(ir,r)>' + assert repr_of_descr(descr4) == '<Callr %d ir>' % o # descr4i = get_call_descr(c0, [lltype.Char, lltype.Ptr(S)], lltype.Char) - assert descr4i.repr_of_descr() == '<CallDescr(ir,i)>' + assert repr_of_descr(descr4i) == '<Calli 1 ir>' # descr4f = get_call_descr(c0, [lltype.Char, lltype.Ptr(S)], lltype.Float) - assert descr4f.repr_of_descr() == '<CallDescr(ir,f)>' + assert repr_of_descr(descr4f) == '<Callf 8 ir>' # descr5f = get_call_descr(c0, [lltype.Char], lltype.SingleFloat) - assert descr5f.repr_of_descr() == '<CallDescr(i,S)>' + assert repr_of_descr(descr5f) == '<CallS 4 i>' def test_call_stubs_1(): c0 = GcCache(False) diff --git a/pypy/jit/metainterp/optimizeopt/test/test_multilabel.py b/pypy/jit/metainterp/optimizeopt/test/test_multilabel.py --- a/pypy/jit/metainterp/optimizeopt/test/test_multilabel.py +++ b/pypy/jit/metainterp/optimizeopt/test/test_multilabel.py @@ -1,3 +1,4 @@ +from __future__ import with_statement from pypy.jit.metainterp.optimizeopt.test.test_util import ( LLtypeMixin, BaseTest, Storage, _sortboxes, FakeDescrWithSnapshot) from pypy.jit.metainterp.history import TreeLoop, JitCellToken, TargetToken diff --git a/pypy/module/pypyjit/test_pypy_c/model.py b/pypy/module/pypyjit/test_pypy_c/model.py --- a/pypy/module/pypyjit/test_pypy_c/model.py +++ b/pypy/module/pypyjit/test_pypy_c/model.py @@ -311,7 +311,7 @@ # to repeat it every time ticker_check = """ guard_not_invalidated? - ticker0 = getfield_raw(ticker_address, descr=<SignedFieldDescr pypysig_long_struct.c_value .*>) + ticker0 = getfield_raw(ticker_address, descr=<FieldS pypysig_long_struct.c_value .*>) ticker_cond0 = int_lt(ticker0, 0) guard_false(ticker_cond0, descr=...) """ @@ -320,9 +320,9 @@ # this is the ticker check generated if we have threads thread_ticker_check = """ guard_not_invalidated? - ticker0 = getfield_raw(ticker_address, descr=<SignedFieldDescr pypysig_long_struct.c_value .*>) + ticker0 = getfield_raw(ticker_address, descr=<FieldS pypysig_long_struct.c_value .*>) ticker1 = int_sub(ticker0, _) - setfield_raw(ticker_address, ticker1, descr=<SignedFieldDescr pypysig_long_struct.c_value .*>) + setfield_raw(ticker_address, ticker1, descr=<FieldS pypysig_long_struct.c_value .*>) ticker_cond0 = int_lt(ticker1, 0) guard_false(ticker_cond0, descr=...) """ @@ -330,7 +330,7 @@ # # this is the ticker check generated in PyFrame.handle_operation_error exc_ticker_check = """ - ticker2 = getfield_raw(ticker_address, descr=<SignedFieldDescr pypysig_long_struct.c_value .*>) + ticker2 = getfield_raw(ticker_address, descr=<FieldS pypysig_long_struct.c_value .*>) ticker_cond1 = int_lt(ticker2, 0) guard_false(ticker_cond1, descr=...) """ @@ -451,7 +451,6 @@ try: self.match_loop(expected_ops, ignore_ops) except InvalidMatch, e: - #raise # uncomment this and use py.test --pdb for better debugging print '@' * 40 print "Loops don't match" print "=================" @@ -464,7 +463,7 @@ print print "Expected:" print format(expected_src) - return False + raise # always propagate the exception in case of mismatch else: return True diff --git a/pypy/module/pypyjit/test_pypy_c/test_00_model.py b/pypy/module/pypyjit/test_pypy_c/test_00_model.py --- a/pypy/module/pypyjit/test_pypy_c/test_00_model.py +++ b/pypy/module/pypyjit/test_pypy_c/test_00_model.py @@ -7,8 +7,9 @@ from pypy.tool.udir import udir from pypy.tool import logparser from pypy.jit.tool.jitoutput import parse_prof -from pypy.module.pypyjit.test_pypy_c.model import Log, find_ids_range, find_ids, \ - TraceWithIds, OpMatcher +from pypy.module.pypyjit.test_pypy_c.model import (Log, find_ids_range, + find_ids, TraceWithIds, + OpMatcher, InvalidMatch) class BaseTestPyPyC(object): def setup_class(cls): @@ -115,13 +116,18 @@ assert opcodes_names == ['LOAD_FAST', 'LOAD_CONST', 'BINARY_ADD', 'STORE_FAST'] -class TestOpMatcher(object): +class TestOpMatcher_(object): def match(self, src1, src2, **kwds): from pypy.tool.jitlogparser.parser import SimpleParser loop = SimpleParser.parse_from_input(src1) matcher = OpMatcher(loop.operations) - return matcher.match(src2, **kwds) + try: + res = matcher.match(src2, **kwds) + assert res is True + return True + except InvalidMatch: + return False def test_match_var(self): match_var = OpMatcher([]).match_var @@ -447,7 +453,7 @@ jump(p0, p1, p2, p3, i8, descr=...) """) # - assert not loop.match(""" + py.test.raises(InvalidMatch, loop.match, """ i6 = int_lt(i4, 1003) guard_true(i6) i8 = int_add(i5, 1) # variable mismatch @@ -492,9 +498,8 @@ guard_no_exception(descr=...) """) # - assert not loop.match_by_id('ntohs', """ + py.test.raises(InvalidMatch, loop.match_by_id, 'ntohs', """ guard_not_invalidated(descr=...) p12 = call(ConstClass(foobar), 1, descr=...) guard_no_exception(descr=...) """) - diff --git a/pypy/module/pypyjit/test_pypy_c/test__ffi.py b/pypy/module/pypyjit/test_pypy_c/test__ffi.py --- a/pypy/module/pypyjit/test_pypy_c/test__ffi.py +++ b/pypy/module/pypyjit/test_pypy_c/test__ffi.py @@ -35,7 +35,7 @@ guard_not_invalidated(descr=...) i17 = force_token() setfield_gc(p0, i17, descr=<.* .*PyFrame.vable_token .*>) - f21 = call_release_gil(%s, 2.000000, 3.000000, descr=<FloatCallDescr>) + f21 = call_release_gil(%s, 2.000000, 3.000000, descr=<Callf 8 ff EF=6>) guard_not_forced(descr=...) guard_no_exception(descr=...) """ % pow_addr) diff --git a/pypy/module/pypyjit/test_pypy_c/test_array.py b/pypy/module/pypyjit/test_pypy_c/test_array.py --- a/pypy/module/pypyjit/test_pypy_c/test_array.py +++ b/pypy/module/pypyjit/test_pypy_c/test_array.py @@ -42,7 +42,7 @@ guard_not_invalidated(descr=...) i13 = int_lt(i7, i9) guard_true(i13, descr=...) - i15 = getarrayitem_raw(i10, i7, descr=<.*ArrayNoLengthDescr>) + i15 = getarrayitem_raw(i10, i7, descr=<ArrayS .>) i16 = int_add_ovf(i8, i15) guard_no_overflow(descr=...) i18 = int_add(i7, 1) @@ -72,17 +72,17 @@ guard_true(i13, descr=...) guard_not_invalidated(descr=...) # the bound check guard on img has been killed (thanks to the asserts) - i14 = getarrayitem_raw(i10, i8, descr=<.*ArrayNoLengthDescr>) + i14 = getarrayitem_raw(i10, i8, descr=<ArrayS .>) i15 = int_add_ovf(i9, i14) guard_no_overflow(descr=...) i17 = int_sub(i8, 640) # the bound check guard on intimg has been killed (thanks to the asserts) - i18 = getarrayitem_raw(i11, i17, descr=<.*ArrayNoLengthDescr>) + i18 = getarrayitem_raw(i11, i17, descr=<ArrayS .>) i19 = int_add_ovf(i18, i15) guard_no_overflow(descr=...) # on 64bit, there is a guard checking that i19 actually fits into 32bit ... - setarrayitem_raw(i11, i8, _, descr=<.*ArrayNoLengthDescr>) + setarrayitem_raw(i11, i8, _, descr=<ArrayS .>) i28 = int_add(i8, 1) --TICK-- jump(p0, p1, p2, p3, p4, p5, p6, i28, i15, p9, i10, i11, descr=...) @@ -107,10 +107,10 @@ guard_true(i10, descr=...) i11 = int_lt(i6, i7) guard_true(i11, descr=...) - f13 = getarrayitem_raw(i8, i6, descr=<FloatArrayNoLengthDescr>) + f13 = getarrayitem_raw(i8, i6, descr=<ArrayF 8>) f15 = float_add(f13, 20.500000) - setarrayitem_raw(i8, i6, f15, descr=<FloatArrayNoLengthDescr>) - f16 = getarrayitem_raw(i8, i6, descr=<FloatArrayNoLengthDescr>) + setarrayitem_raw(i8, i6, f15, descr=<ArrayF 8>) + f16 = getarrayitem_raw(i8, i6, descr=<ArrayF 8>) i18 = float_eq(f16, 42.000000) guard_true(i18, descr=...) i20 = int_add(i6, 1) @@ -132,28 +132,24 @@ log = self.run(main, []) assert log.result == 321 loop, = log.loops_by_filename(self.filepath) - if sys.maxint == 2147483647: - arraydescr = 'UnsignedArrayNoLengthDescr' - else: - arraydescr = 'UINTArrayNoLengthDescr' assert loop.match(""" i10 = int_lt(i6, 1000) guard_true(i10, descr=...) i11 = int_lt(i6, i7) guard_true(i11, descr=...) - i13 = getarrayitem_raw(i8, i6, descr=<%s>) + i13 = getarrayitem_raw(i8, i6, descr=<Array. 4>) f14 = cast_singlefloat_to_float(i13) f16 = float_add(f14, 20.500000) i17 = cast_float_to_singlefloat(f16) - setarrayitem_raw(i8, i6,i17, descr=<%s>) - i18 = getarrayitem_raw(i8, i6, descr=<%s>) + setarrayitem_raw(i8, i6,i17, descr=<Array. 4>) + i18 = getarrayitem_raw(i8, i6, descr=<Array. 4>) f19 = cast_singlefloat_to_float(i18) i21 = float_eq(f19, 42.000000) guard_true(i21, descr=...) i23 = int_add(i6, 1) --TICK-- jump(..., descr=...) - """ % (arraydescr, arraydescr, arraydescr)) + """) def test_zeropadded(self): diff --git a/pypy/module/pypyjit/test_pypy_c/test_call.py b/pypy/module/pypyjit/test_pypy_c/test_call.py --- a/pypy/module/pypyjit/test_pypy_c/test_call.py +++ b/pypy/module/pypyjit/test_pypy_c/test_call.py @@ -75,12 +75,12 @@ assert log.opnames(ops) == [] # assert entry_bridge.match_by_id('call', """ - p38 = call(ConstClass(getexecutioncontext), descr=<GcPtrCallDescr>) - p39 = getfield_gc(p38, descr=<GcPtrFieldDescr pypy.interpreter.executioncontext.ExecutionContext.inst_topframeref .*>) + p38 = call(ConstClass(getexecutioncontext), descr=<Callr . EF=1>) + p39 = getfield_gc(p38, descr=<FieldP pypy.interpreter.executioncontext.ExecutionContext.inst_topframeref .*>) i40 = force_token() - p41 = getfield_gc(p38, descr=<GcPtrFieldDescr pypy.interpreter.executioncontext.ExecutionContext.inst_w_tracefunc .*>) + p41 = getfield_gc(p38, descr=<FieldP pypy.interpreter.executioncontext.ExecutionContext.inst_w_tracefunc .*>) guard_isnull(p41, descr=...) - i42 = getfield_gc(p38, descr=<NonGcPtrFieldDescr pypy.interpreter.executioncontext.ExecutionContext.inst_profilefunc .*>) + i42 = getfield_gc(p38, descr=<FieldU pypy.interpreter.executioncontext.ExecutionContext.inst_profilefunc .*>) i43 = int_is_zero(i42) guard_true(i43, descr=...) i50 = force_token() @@ -192,7 +192,7 @@ assert log.result == 1000 loop, = log.loops_by_id('call') assert loop.match_by_id('call', """ - p14 = getarrayitem_gc_pure(p8, i9, descr=<GcPtrArrayDescr>) + p14 = getarrayitem_gc_pure(p8, i9, descr=<ArrayP .>) i14 = force_token() i16 = force_token() """) @@ -336,15 +336,15 @@ loop, = log.loops_by_filename(self.filepath) # the int strategy is used here assert loop.match_by_id('append', """ - i13 = getfield_gc(p8, descr=<SignedFieldDescr list.length .*>) + i13 = getfield_gc(p8, descr=<FieldS list.length .*>) i15 = int_add(i13, 1) # Will be killed by the backend - p15 = getfield_gc(p8, descr=<GcPtrFieldDescr list.items .*>) - i17 = arraylen_gc(p15, descr=<SignedArrayDescr>) - call(_, p8, i15, descr=<VoidCallDescr>) # this is a call to _ll_list_resize_ge_trampoline__... + p15 = getfield_gc(p8, descr=<FieldP list.items .*>) + i17 = arraylen_gc(p15, descr=<ArrayS .>) + call(_, p8, i15, descr=<Callv 0 ri EF=4>) # this is a call to _ll_list_resize_ge_trampoline__... guard_no_exception(descr=...) - p17 = getfield_gc(p8, descr=<GcPtrFieldDescr list.items .*>) - setarrayitem_gc(p17, i13, i12, descr=<SignedArrayDescr>) + p17 = getfield_gc(p8, descr=<FieldP list.items .*>) + setarrayitem_gc(p17, i13, i12, descr=<ArrayS .>) """) def test_blockstack_virtualizable(self): @@ -368,13 +368,13 @@ ... i20 = force_token() p22 = new_with_vtable(19511408) - p24 = new_array(1, descr=<GcPtrArrayDescr>) + p24 = new_array(1, descr=<ArrayP .>) p26 = new_with_vtable(ConstClass(W_ListObject)) - setfield_gc(p0, i20, descr=<SignedFieldDescr .*PyFrame.vable_token .*>) - setfield_gc(p26, ConstPtr(ptr22), descr=<GcPtrFieldDescr pypy.objspace.std.listobject.W_ListObject.inst_strategy .*>) - setarrayitem_gc(p24, 0, p26, descr=<GcPtrArrayDescr>) - setfield_gc(p22, p24, descr=<GcPtrFieldDescr .*Arguments.inst_arguments_w .*>) - p32 = call_may_force(11376960, p18, p22, descr=<GcPtrCallDescr>) + setfield_gc(p0, i20, descr=<FieldS .*PyFrame.vable_token .*>) + setfield_gc(p26, ConstPtr(ptr22), descr=<FieldP pypy.objspace.std.listobject.W_ListObject.inst_strategy .*>) + setarrayitem_gc(p24, 0, p26, descr=<ArrayP .>) + setfield_gc(p22, p24, descr=<FieldP .*Arguments.inst_arguments_w .*>) + p32 = call_may_force(11376960, p18, p22, descr=<Callr . rr EF=6>) ... """) @@ -415,26 +415,26 @@ guard_nonnull_class(p8, ConstClass(W_IntObject), descr=...) guard_value(i4, 0, descr=...) guard_value(p3, ConstPtr(ptr14), descr=...) - i15 = getfield_gc_pure(p8, descr=<SignedFieldDescr pypy.objspace.std.intobject.W_IntObject.inst_intval .*>) + i15 = getfield_gc_pure(p8, descr=<FieldS pypy.objspace.std.intobject.W_IntObject.inst_intval .*>) i17 = int_lt(i15, 5000) guard_true(i17, descr=...) - p18 = getfield_gc(p0, descr=<GcPtrFieldDescr pypy.interpreter.eval.Frame.inst_w_globals .*>) + p18 = getfield_gc(p0, descr=<FieldP pypy.interpreter.eval.Frame.inst_w_globals .*>) guard_value(p18, ConstPtr(ptr19), descr=...) - p20 = getfield_gc(p18, descr=<GcPtrFieldDescr pypy.objspace.std.dictmultiobject.W_DictMultiObject.inst_strategy .*>) + p20 = getfield_gc(p18, descr=<FieldP pypy.objspace.std.dictmultiobject.W_DictMultiObject.inst_strategy .*>) guard_value(p20, ConstPtr(ptr21), descr=...) guard_not_invalidated(descr=...) # most importantly, there is no getarrayitem_gc here - p23 = call(ConstClass(getexecutioncontext), descr=<GcPtrCallDescr>) - p24 = getfield_gc(p23, descr=<GcPtrFieldDescr pypy.interpreter.executioncontext.ExecutionContext.inst_topframeref .*>) + p23 = call(ConstClass(getexecutioncontext), descr=<Callr . EF=1>) + p24 = getfield_gc(p23, descr=<FieldP pypy.interpreter.executioncontext.ExecutionContext.inst_topframeref .*>) i25 = force_token() - p26 = getfield_gc(p23, descr=<GcPtrFieldDescr pypy.interpreter.executioncontext.ExecutionContext.inst_w_tracefunc .*>) + p26 = getfield_gc(p23, descr=<FieldP pypy.interpreter.executioncontext.ExecutionContext.inst_w_tracefunc .*>) guard_isnull(p26, descr=...) - i27 = getfield_gc(p23, descr=<NonGcPtrFieldDescr pypy.interpreter.executioncontext.ExecutionContext.inst_profilefunc .*>) + i27 = getfield_gc(p23, descr=<FieldU pypy.interpreter.executioncontext.ExecutionContext.inst_profilefunc .*>) i28 = int_is_zero(i27) guard_true(i28, descr=...) - p30 = getfield_gc(ConstPtr(ptr29), descr=<GcPtrFieldDescr pypy.interpreter.nestedscope.Cell.inst_w_value .*>) + p30 = getfield_gc(ConstPtr(ptr29), descr=<FieldP pypy.interpreter.nestedscope.Cell.inst_w_value .*>) guard_nonnull_class(p30, ConstClass(W_IntObject), descr=...) - i32 = getfield_gc_pure(p30, descr=<SignedFieldDescr pypy.objspace.std.intobject.W_IntObject.inst_intval .*>) + i32 = getfield_gc_pure(p30, descr=<FieldS pypy.objspace.std.intobject.W_IntObject.inst_intval .*>) i33 = int_add_ovf(i15, i32) guard_no_overflow(descr=...) --TICK-- @@ -452,15 +452,15 @@ """, []) loop, = log.loops_by_id('call') assert loop.match(""" - i8 = getfield_gc_pure(p6, descr=<SignedFieldDescr pypy.objspace.std.intobject.W_IntObject.inst_intval .*>) + i8 = getfield_gc_pure(p6, descr=<FieldS pypy.objspace.std.intobject.W_IntObject.inst_intval .*>) i10 = int_lt(i8, 5000) guard_true(i10, descr=...) i11 = force_token() i13 = int_add(i8, 1) --TICK-- p22 = new_with_vtable(ConstClass(W_IntObject)) - setfield_gc(p22, i13, descr=<SignedFieldDescr pypy.objspace.std.intobject.W_IntObject.inst_intval .*>) - setfield_gc(p4, p22, descr=<GcPtrFieldDescr pypy.interpreter.nestedscope.Cell.inst_w_value .*>) + setfield_gc(p22, i13, descr=<FieldS pypy.objspace.std.intobject.W_IntObject.inst_intval .*>) + setfield_gc(p4, p22, descr=<FieldP pypy.interpreter.nestedscope.Cell.inst_w_value .*>) jump(p0, p1, p2, p3, p4, p7, p22, p7, descr=...) """) diff --git a/pypy/module/pypyjit/test_pypy_c/test_containers.py b/pypy/module/pypyjit/test_pypy_c/test_containers.py --- a/pypy/module/pypyjit/test_pypy_c/test_containers.py +++ b/pypy/module/pypyjit/test_pypy_c/test_containers.py @@ -46,7 +46,7 @@ assert loop.match_by_id("getitem", """ i26 = call(ConstClass(ll_dict_lookup), p18, p6, i25, descr=...) ... - p33 = getinteriorfield_gc(p31, i26, descr=<InteriorFieldDescr <GcPtrFieldDescr dictentry.value .*>>) + p33 = getinteriorfield_gc(p31, i26, descr=<InteriorFieldDescr <FieldP dictentry.value .*>>) ... """) @@ -86,28 +86,28 @@ i8 = int_lt(i5, i7) guard_true(i8, descr=...) guard_not_invalidated(descr=...) - p10 = call(ConstClass(ll_int_str), i5, descr=<GcPtrCallDescr>) + p10 = call(ConstClass(ll_int_str), i5, descr=<Callr . i EF=3>) guard_no_exception(descr=...) - i12 = call(ConstClass(ll_strhash), p10, descr=<SignedCallDescr>) + i12 = call(ConstClass(ll_strhash), p10, descr=<Calli . r EF=0>) p13 = new(descr=...) - p15 = new_array(8, descr=<dictentryArrayDescr>) - setfield_gc(p13, p15, descr=<GcPtrFieldDescr dicttable.entries .*>) - i17 = call(ConstClass(ll_dict_lookup_trampoline), p13, p10, i12, descr=<SignedCallDescr>) - setfield_gc(p13, 16, descr=<SignedFieldDescr dicttable.resize_counter .*>) + p15 = new_array(8, descr=<ArrayX .*>) + setfield_gc(p13, p15, descr=<FieldP dicttable.entries .*>) + i17 = call(ConstClass(ll_dict_lookup_trampoline), p13, p10, i12, descr=<Calli . rri EF=4>) + setfield_gc(p13, 16, descr=<FieldS dicttable.resize_counter .*>) guard_no_exception(descr=...) p20 = new_with_vtable(ConstClass(W_IntObject)) - call(ConstClass(_ll_dict_setitem_lookup_done_trampoline), p13, p10, p20, i12, i17, descr=<VoidCallDescr>) - setfield_gc(p20, i5, descr=<SignedFieldDescr .*W_IntObject.inst_intval .*>) + call(ConstClass(_ll_dict_setitem_lookup_done_trampoline), p13, p10, p20, i12, i17, descr=<Callv 0 rrrii EF=4>) + setfield_gc(p20, i5, descr=<FieldS .*W_IntObject.inst_intval .*>) guard_no_exception(descr=...) - i23 = call(ConstClass(ll_dict_lookup_trampoline), p13, p10, i12, descr=<SignedCallDescr>) + i23 = call(ConstClass(ll_dict_lookup_trampoline), p13, p10, i12, descr=<Calli . rri EF=4>) guard_no_exception(descr=...) i26 = int_and(i23, .*) i27 = int_is_true(i26) guard_false(i27, descr=...) - p28 = getfield_gc(p13, descr=<GcPtrFieldDescr dicttable.entries .*>) - p29 = getinteriorfield_gc(p28, i23, descr=<InteriorFieldDescr <GcPtrFieldDescr dictentry.value .*>>) + p28 = getfield_gc(p13, descr=<FieldP dicttable.entries .*>) + p29 = getinteriorfield_gc(p28, i23, descr=<InteriorFieldDescr <FieldP dictentry.value .*>>) guard_nonnull_class(p29, ConstClass(W_IntObject), descr=...) - i31 = getfield_gc_pure(p29, descr=<SignedFieldDescr .*W_IntObject.inst_intval .*>) + i31 = getfield_gc_pure(p29, descr=<FieldS .*W_IntObject.inst_intval .*>) i32 = int_sub_ovf(i31, i5) guard_no_overflow(descr=...) i34 = int_add_ovf(i32, 1) diff --git a/pypy/module/pypyjit/test_pypy_c/test_globals.py b/pypy/module/pypyjit/test_pypy_c/test_globals.py --- a/pypy/module/pypyjit/test_pypy_c/test_globals.py +++ b/pypy/module/pypyjit/test_pypy_c/test_globals.py @@ -16,11 +16,11 @@ assert log.result == 500 loop, = log.loops_by_filename(self.filepath) assert loop.match_by_id("loadglobal", """ - p10 = getfield_gc(p0, descr=<GcPtrFieldDescr .*Frame.inst_w_globals .*>) + p10 = getfield_gc(p0, descr=<FieldP .*Frame.inst_w_globals .*>) guard_value(p10, ConstPtr(ptr11), descr=...) - p12 = getfield_gc(p10, descr=<GcPtrFieldDescr .*W_DictMultiObject.inst_strategy .*>) + p12 = getfield_gc(p10, descr=<FieldP .*W_DictMultiObject.inst_strategy .*>) guard_value(p12, ConstPtr(ptr13), descr=...) guard_not_invalidated(descr=...) - p19 = getfield_gc(ConstPtr(p17), descr=<GcPtrFieldDescr .*W_DictMultiObject.inst_strategy .*>) + p19 = getfield_gc(ConstPtr(p17), descr=<FieldP .*W_DictMultiObject.inst_strategy .*>) guard_value(p19, ConstPtr(ptr20), descr=...) - """) \ No newline at end of file + """) diff --git a/pypy/module/pypyjit/test_pypy_c/test_instance.py b/pypy/module/pypyjit/test_pypy_c/test_instance.py --- a/pypy/module/pypyjit/test_pypy_c/test_instance.py +++ b/pypy/module/pypyjit/test_pypy_c/test_instance.py @@ -125,8 +125,8 @@ i12 = force_token() --TICK-- p20 = new_with_vtable(ConstClass(W_IntObject)) - setfield_gc(p20, i11, descr=<SignedFieldDescr.*W_IntObject.inst_intval .*>) - setfield_gc(ConstPtr(ptr21), p20, descr=<GcPtrFieldDescr .*TypeCell.inst_w_value .*>) + setfield_gc(p20, i11, descr=<FieldS.*W_IntObject.inst_intval .*>) + setfield_gc(ConstPtr(ptr21), p20, descr=<FieldP .*TypeCell.inst_w_value .*>) jump(p0, p1, p2, p3, p4, p20, p6, i7, p20, descr=...) """) diff --git a/pypy/module/pypyjit/test_pypy_c/test_math.py b/pypy/module/pypyjit/test_pypy_c/test_math.py --- a/pypy/module/pypyjit/test_pypy_c/test_math.py +++ b/pypy/module/pypyjit/test_pypy_c/test_math.py @@ -23,8 +23,8 @@ f1 = cast_int_to_float(i0) i3 = float_le(f1, 0) guard_false(i3, descr=...) - f2 = call(ConstClass(log), f1, descr=<FloatCallDescr>) - f3 = call(ConstClass(log10), f1, descr=<FloatCallDescr>) + f2 = call(ConstClass(log), f1, descr=<Callf . f EF=2>) + f3 = call(ConstClass(log10), f1, descr=<Callf . f EF=2>) f4 = float_sub(f2, f3) f5 = float_add(f0, f4) i4 = int_add(i0, 1) @@ -52,8 +52,8 @@ f1 = cast_int_to_float(i0) i6 = --ISINF--(f1) guard_false(i6, descr=...) - f2 = call(ConstClass(sin), f1, descr=<FloatCallDescr>) - f3 = call(ConstClass(cos), f1, descr=<FloatCallDescr>) + f2 = call(ConstClass(sin), f1, descr=<Callf . f EF=2>) + f3 = call(ConstClass(cos), f1, descr=<Callf . f EF=2>) f4 = float_sub(f2, f3) f5 = float_add(f0, f4) i7 = int_add(i0, f1) @@ -84,7 +84,7 @@ i4 = int_or(i2, i3) i5 = int_is_true(i4) guard_false(i5, descr=...) - f2 = call(ConstClass(fmod), f1, 2.0, descr=<FloatCallDescr>) + f2 = call(ConstClass(fmod), f1, 2.0, descr=<Callf . ff EF=2>) f3 = float_add(f0, f2) i6 = int_sub(i0, 1) --TICK-- diff --git a/pypy/module/pypyjit/test_pypy_c/test_misc.py b/pypy/module/pypyjit/test_pypy_c/test_misc.py --- a/pypy/module/pypyjit/test_pypy_c/test_misc.py +++ b/pypy/module/pypyjit/test_pypy_c/test_misc.py @@ -204,18 +204,18 @@ assert log.result == 1000000 loop, = log.loops_by_filename(self.filepath) assert loop.match(""" - i14 = getfield_gc(p12, descr=<SignedFieldDescr list.length .*>) + i14 = getfield_gc(p12, descr=<FieldS list.length .*>) i16 = uint_ge(i12, i14) guard_false(i16, descr=...) - p16 = getfield_gc(p12, descr=<GcPtrFieldDescr list.items .*>) - p17 = getarrayitem_gc(p16, i12, descr=<GcPtrArrayDescr>) + p16 = getfield_gc(p12, descr=<FieldP list.items .*>) + p17 = getarrayitem_gc(p16, i12, descr=<ArrayP .>) i19 = int_add(i12, 1) - setfield_gc(p9, i19, descr=<SignedFieldDescr .*W_AbstractSeqIterObject.inst_index .*>) + setfield_gc(p9, i19, descr=<FieldS .*W_AbstractSeqIterObject.inst_index .*>) guard_nonnull_class(p17, 146982464, descr=...) - i21 = getfield_gc(p17, descr=<SignedFieldDescr .*W_ArrayTypei.inst_len .*>) + i21 = getfield_gc(p17, descr=<FieldS .*W_ArrayTypei.inst_len .*>) i23 = int_lt(0, i21) guard_true(i23, descr=...) - i24 = getfield_gc(p17, descr=<NonGcPtrFieldDescr .*W_ArrayTypei.inst_buffer .*>) + i24 = getfield_gc(p17, descr=<FieldU .*W_ArrayTypei.inst_buffer .*>) i25 = getarrayitem_raw(i24, 0, descr=<.*>) i27 = int_lt(1, i21) guard_false(i27, descr=...) diff --git a/pypy/module/pypyjit/test_pypy_c/test_string.py b/pypy/module/pypyjit/test_pypy_c/test_string.py --- a/pypy/module/pypyjit/test_pypy_c/test_string.py +++ b/pypy/module/pypyjit/test_pypy_c/test_string.py @@ -1,6 +1,9 @@ from pypy.module.pypyjit.test_pypy_c.test_00_model import BaseTestPyPyC +# XXX review the <Call> descrs to replace some EF=4 with EF=3 (elidable) + + class TestString(BaseTestPyPyC): def test_lookup_default_encoding(self): def main(n): @@ -72,7 +75,7 @@ i23 = strgetitem(p10, i19) p25 = newstr(1) strsetitem(p25, 0, i23) - p28 = call(ConstClass(strip_spaces), p25, descr=<GcPtrCallDescr>) + p28 = call(ConstClass(strip_spaces), p25, descr=<Callr . r EF=4>) guard_no_exception(descr=...) i29 = strlen(p28) i30 = int_is_true(i29) @@ -88,9 +91,9 @@ guard_false(i41, descr=...) i43 = int_eq(i39, 43) guard_false(i43, descr=...) - i43 = call(ConstClass(ll_startswith__rpy_stringPtr_rpy_stringPtr), p28, ConstPtr(ptr42), descr=<BoolCallDescr>) + i43 = call(ConstClass(ll_startswith__rpy_stringPtr_rpy_stringPtr), p28, ConstPtr(ptr42), descr=<Calli 1 rr EF=0>) guard_false(i43, descr=...) - i46 = call(ConstClass(ll_startswith__rpy_stringPtr_rpy_stringPtr), p28, ConstPtr(ptr45), descr=<BoolCallDescr>) + i46 = call(ConstClass(ll_startswith__rpy_stringPtr_rpy_stringPtr), p28, ConstPtr(ptr45), descr=<Calli 1 rr EF=0>) guard_false(i46, descr=...) p51 = new_with_vtable(21136408) setfield_gc(p51, _, descr=...) # 7 setfields, but the order is dict-order-dependent @@ -100,9 +103,9 @@ setfield_gc(p51, _, descr=...) setfield_gc(p51, _, descr=...) setfield_gc(p51, _, descr=...) - p55 = call(ConstClass(parse_digit_string), p51, descr=<GcPtrCallDescr>) + p55 = call(ConstClass(parse_digit_string), p51, descr=<Callr . r EF=4>) guard_no_exception(descr=...) - i57 = call(ConstClass(rbigint.toint), p55, descr=<SignedCallDescr>) + i57 = call(ConstClass(rbigint.toint), p55, descr=<Calli . r EF=3>) guard_no_exception(descr=...) i58 = int_add_ovf(i6, i57) guard_no_overflow(descr=...) @@ -125,7 +128,7 @@ i7 = int_gt(i4, 0) guard_true(i7, descr=...) guard_not_invalidated(descr=...) - p9 = call(ConstClass(ll_int2dec__Signed), i4, descr=<GcPtrCallDescr>) + p9 = call(ConstClass(ll_int2dec__Signed), i4, descr=<Callr . i EF=3>) guard_no_exception(descr=...) i10 = strlen(p9) i11 = int_is_true(i10) @@ -149,7 +152,7 @@ copystrcontent(p9, p21, 0, i25, i10) i33 = int_lt(i30, 23) guard_true(i33, descr=...) - p35 = call(ConstClass(ll_shrink_array__rpy_stringPtr_Signed), p21, i30, descr=<GcPtrCallDescr>) + p35 = call(ConstClass(ll_shrink_array__rpy_stringPtr_Signed), p21, i30, descr=<Callr . ri EF=4>) guard_no_exception(descr=...) i37 = strlen(p35) i38 = int_add_ovf(i5, i37) @@ -192,6 +195,6 @@ strsetitem(p35, 3, 104) strsetitem(p35, 4, 95) copystrcontent(p31, p35, 0, 5, i32) - i49 = call(ConstClass(_ll_2_str_eq_nonnull__rpy_stringPtr_rpy_stringPtr), p35, ConstPtr(ptr48), descr=<SignedCallDescr>) - guard_value(i49, 1, descr=<Guard8>) + i49 = call(ConstClass(_ll_2_str_eq_nonnull__rpy_stringPtr_rpy_stringPtr), p35, ConstPtr(ptr48), descr=<Calli [48] rr EF=0 OS=28>) + guard_value(i49, 1, descr=...) ''') _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit