Author: Maciej Fijalkowski <fij...@gmail.com> Branch: optresult-unroll Changeset: r79181:180f01789a16 Date: 2015-08-24 10:26 +0200 http://bitbucket.org/pypy/pypy/changeset/180f01789a16/
Log: Backed out changeset 3a31270fcdd4 diff --git a/rpython/jit/backend/llgraph/runner.py b/rpython/jit/backend/llgraph/runner.py --- a/rpython/jit/backend/llgraph/runner.py +++ b/rpython/jit/backend/llgraph/runner.py @@ -92,7 +92,8 @@ def __init__(self, S, vtable, runner): self.S = S self._is_object = vtable is not None - self.vtable = vtable + self.all_fielddescrs = heaptracker.all_fielddescrs(runner, S, + get_field_descr=LLGraphCPU.fielddescrof) def get_all_fielddescrs(self): return self.all_fielddescrs @@ -102,7 +103,7 @@ def get_vtable(self): return heaptracker.adr2int(llmemory.cast_ptr_to_adr( - self.vtable)) + self._corresponding_vtable)) def count_fields_if_immutable(self): return heaptracker.count_fields_if_immutable(self.S) @@ -222,8 +223,6 @@ self.fieldname = fieldname self.FIELD = getattr(A.OF, fieldname) self.arraydescr = runner.arraydescrof(A) - assert not heaptracker.has_gcstruct_a_vtable(A) - runner.sizeof(A.OF, None) self.fielddescr = runner.fielddescrof(A.OF, fieldname) def get_arraydescr(self): @@ -415,8 +414,6 @@ except KeyError: descr = SizeDescr(S, vtable, self) self.descrs[key] = descr - descr.all_fielddescrs = heaptracker.all_fielddescrs(self, S, - get_field_descr=LLGraphCPU.fielddescrof) return descr def fielddescrof(self, S, fieldname): @@ -426,8 +423,8 @@ except KeyError: descr = FieldDescr(S, fieldname) self.descrs[key] = descr - vtable = self.descrs[('size', S)].vtable - descr.parent_descr = self.sizeof(S, vtable) + is_obj = heaptracker.has_gcstruct_a_vtable(S) + descr.parent_descr = self.sizeof(S, is_obj) if self.vinfo_for_tests is not None: descr.vinfo = self.vinfo_for_tests return descr diff --git a/rpython/jit/metainterp/optimizeopt/test/test_util.py b/rpython/jit/metainterp/optimizeopt/test/test_util.py --- a/rpython/jit/metainterp/optimizeopt/test/test_util.py +++ b/rpython/jit/metainterp/optimizeopt/test/test_util.py @@ -121,9 +121,9 @@ myptr2 = lltype.cast_opaque_ptr(llmemory.GCREF, lltype.malloc(NODE)) nullptr = lltype.nullptr(llmemory.GCREF.TO) #nodebox2 = InputArgRef(lltype.cast_opaque_ptr(llmemory.GCREF, node2)) - nodesize = cpu.sizeof(NODE, node_vtable) - nodesize2 = cpu.sizeof(NODE2, node_vtable2) - nodesize3 = cpu.sizeof(NODE3, node_vtable3) + nodesize = cpu.sizeof(NODE, True) + nodesize2 = cpu.sizeof(NODE2, True) + nodesize3 = cpu.sizeof(NODE3, True) valuedescr = cpu.fielddescrof(NODE, 'value') floatdescr = cpu.fielddescrof(NODE, 'floatval') chardescr = cpu.fielddescrof(NODE, 'charval') @@ -139,7 +139,7 @@ QUASI = lltype.GcStruct('QUASIIMMUT', ('inst_field', lltype.Signed), ('mutate_field', rclass.OBJECTPTR), hints={'immutable_fields': accessor}) - quasisize = cpu.sizeof(QUASI, None) + quasisize = cpu.sizeof(QUASI, False) quasi = lltype.malloc(QUASI, immortal=True) quasi.inst_field = -4247 quasifielddescr = cpu.fielddescrof(QUASI, 'inst_field') @@ -151,7 +151,6 @@ ('ref', lltype.Ptr(OBJECT))) nodeobj = lltype.malloc(NODEOBJ) nodeobjvalue = lltype.cast_opaque_ptr(llmemory.GCREF, nodeobj) - cpu.sizeof(NODEOBJ, None) refdescr = cpu.fielddescrof(NODEOBJ, 'ref') INTOBJ_NOIMMUT = lltype.GcStruct('INTOBJ_NOIMMUT', ('parent', OBJECT), @@ -161,16 +160,15 @@ hints={'immutable': True}) intobj_noimmut_vtable = lltype.malloc(OBJECT_VTABLE, immortal=True) intobj_immut_vtable = lltype.malloc(OBJECT_VTABLE, immortal=True) - noimmut_descr = cpu.sizeof(INTOBJ_NOIMMUT, intobj_noimmut_vtable) - immut_descr = cpu.sizeof(INTOBJ_IMMUT, intobj_immut_vtable) noimmut_intval = cpu.fielddescrof(INTOBJ_NOIMMUT, 'intval') immut_intval = cpu.fielddescrof(INTOBJ_IMMUT, 'intval') + noimmut_descr = cpu.sizeof(INTOBJ_NOIMMUT, True) + immut_descr = cpu.sizeof(INTOBJ_IMMUT, True) PTROBJ_IMMUT = lltype.GcStruct('PTROBJ_IMMUT', ('parent', OBJECT), ('ptrval', lltype.Ptr(OBJECT)), hints={'immutable': True}) ptrobj_immut_vtable = lltype.malloc(OBJECT_VTABLE, immortal=True) - cpu.sizeof(PTROBJ_IMMUT, None) immut_ptrval = cpu.fielddescrof(PTROBJ_IMMUT, 'ptrval') arraydescr = cpu.arraydescrof(lltype.GcArray(lltype.Signed)) @@ -180,7 +178,7 @@ # a GcStruct not inheriting from OBJECT S = lltype.GcStruct('TUPLE', ('a', lltype.Signed), ('abis', lltype.Signed), ('b', lltype.Ptr(NODE))) - ssize = cpu.sizeof(S, None) + ssize = cpu.sizeof(S, False) adescr = cpu.fielddescrof(S, 'a') abisdescr = cpu.fielddescrof(S, 'abis') bdescr = cpu.fielddescrof(S, 'b') @@ -195,16 +193,15 @@ ('inst_w_seq', llmemory.GCREF), ('inst_index', lltype.Signed), ('inst_w_list', llmemory.GCREF), ('inst_length', lltype.Signed), ('inst_start', lltype.Signed), ('inst_step', lltype.Signed)) - w_root_vtable = lltype.malloc(OBJECT_VTABLE, immortal=True) - cpu.sizeof(W_ROOT, w_root_vtable) inst_w_seq = cpu.fielddescrof(W_ROOT, 'inst_w_seq') inst_index = cpu.fielddescrof(W_ROOT, 'inst_index') inst_length = cpu.fielddescrof(W_ROOT, 'inst_length') inst_start = cpu.fielddescrof(W_ROOT, 'inst_start') inst_step = cpu.fielddescrof(W_ROOT, 'inst_step') inst_w_list = cpu.fielddescrof(W_ROOT, 'inst_w_list') + w_root_vtable = lltype.malloc(OBJECT_VTABLE, immortal=True) - tsize = cpu.sizeof(T, None) + tsize = cpu.sizeof(T, False) cdescr = cpu.fielddescrof(T, 'c') ddescr = cpu.fielddescrof(T, 'd') arraydescr3 = cpu.arraydescrof(lltype.GcArray(lltype.Ptr(NODE))) @@ -217,10 +214,10 @@ SIMPLE = lltype.GcStruct('simple', ('parent', OBJECT), ('value', lltype.Signed)) + simpledescr = cpu.sizeof(SIMPLE, True) + simplevalue = cpu.fielddescrof(SIMPLE, 'value') simple_vtable = lltype.malloc(OBJECT_VTABLE, immortal=True) - simpledescr = cpu.sizeof(SIMPLE, simple_vtable) - simplevalue = cpu.fielddescrof(SIMPLE, 'value') - usize = cpu.sizeof(U, u_vtable) + usize = cpu.sizeof(U, True) onedescr = cpu.fielddescrof(U, 'one') FUNC = lltype.FuncType([lltype.Signed], lltype.Signed) @@ -352,7 +349,7 @@ jit_virtual_ref_vtable = vrefinfo.jit_virtual_ref_vtable jvr_vtable_adr = llmemory.cast_ptr_to_adr(jit_virtual_ref_vtable) - vref_descr = cpu.sizeof(vrefinfo.JIT_VIRTUAL_REF, None) + vref_descr = cpu.sizeof(vrefinfo.JIT_VIRTUAL_REF, False) namespace = locals() _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit