Author: Maciej Fijalkowski <[email protected]>
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
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit