Author: Romain Guillebert <[email protected]>
Branch: resume-refactor
Changeset: r68721:6c647ae0fbf8
Date: 2014-01-17 16:00 +0100
http://bitbucket.org/pypy/pypy/changeset/6c647ae0fbf8/
Log: Add missing imports
diff --git a/rpython/jit/metainterp/test/test_resume.py
b/rpython/jit/metainterp/test/test_resume.py
--- a/rpython/jit/metainterp/test/test_resume.py
+++ b/rpython/jit/metainterp/test/test_resume.py
@@ -11,6 +11,7 @@
from rpython.jit.metainterp.optimizeopt.test.test_util import LLtypeMixin
from rpython.jit.metainterp import executor
from rpython.jit.codewriter import heaptracker, longlong
+from rpython.jit.resume.rescode import TAGBOX, TAGCONST, TAGINT, TAGVIRTUAL
class Storage:
rd_frame_info_list = None
@@ -24,14 +25,14 @@
class FakeOptimizer(object):
def __init__(self, values):
self.values = values
-
+
def getvalue(self, box):
try:
value = self.values[box]
except KeyError:
value = self.values[box] = OptValue(box)
return value
-
+
def test_tag():
assert tag(3, 1) == rffi.r_short(3<<2|1)
@@ -81,7 +82,7 @@
def newframe(self, jitcode):
frame = FakeFrame(jitcode, -1)
self.framestack.append(frame)
- return frame
+ return frame
def execute_and_record(self, opnum, descr, *argboxes):
resbox = executor.execute(self.cpu, None, opnum, descr, *argboxes)
@@ -255,7 +256,7 @@
class FakeResumeDataReader(AbstractResumeDataReader):
VirtualCache = get_VirtualCache_class('Fake')
-
+
def allocate_with_vtable(self, known_class):
return FakeBuiltObject(vtable=known_class)
def allocate_struct(self, typedescr):
@@ -398,7 +399,7 @@
def setup_resume_at_op(self, pc, exception_target, env):
self.__init__(self.jitcode, pc, exception_target, *env)
-
+
def __eq__(self, other):
return self.__dict__ == other.__dict__
def __ne__(self, other):
@@ -516,7 +517,7 @@
def test_rebuild_from_resumedata():
py.test.skip("XXX rewrite")
b1, b2, b3 = [BoxInt(), BoxPtr(), BoxInt()]
- c1, c2, c3 = [ConstInt(1), ConstInt(2), ConstInt(3)]
+ c1, c2, c3 = [ConstInt(1), ConstInt(2), ConstInt(3)]
storage = Storage()
fs = [FakeFrame("code0", 0, b1, c1, b2),
FakeFrame("code1", 3, b3, c2, b1),
@@ -540,7 +541,7 @@
def test_rebuild_from_resumedata_with_virtualizable():
py.test.skip("XXX rewrite")
b1, b2, b3, b4 = [BoxInt(), BoxPtr(), BoxInt(), BoxPtr()]
- c1, c2, c3 = [ConstInt(1), ConstInt(2), ConstInt(3)]
+ c1, c2, c3 = [ConstInt(1), ConstInt(2), ConstInt(3)]
storage = Storage()
fs = [FakeFrame("code0", 0, b1, c1, b2),
FakeFrame("code1", 3, b3, c2, b1),
@@ -565,7 +566,7 @@
def test_rebuild_from_resumedata_two_guards():
py.test.skip("XXX rewrite")
b1, b2, b3, b4 = [BoxInt(), BoxPtr(), BoxInt(), BoxInt()]
- c1, c2, c3 = [ConstInt(1), ConstInt(2), ConstInt(3)]
+ c1, c2, c3 = [ConstInt(1), ConstInt(2), ConstInt(3)]
storage = Storage()
fs = [FakeFrame("code0", 0, b1, c1, b2),
FakeFrame("code1", 3, b3, c2, b1),
@@ -574,7 +575,7 @@
storage2 = Storage()
fs = fs[:-1] + [FakeFrame("code2", 10, c3, b2, b4)]
capture_resumedata(fs, None, [], storage2)
-
+
memo = ResumeDataLoopMemo(FakeMetaInterpStaticData())
modifier = ResumeDataVirtualAdder(storage, memo)
liveboxes = modifier.finish(FakeOptimizer({}))
@@ -625,7 +626,7 @@
def test_rebuild_from_resumedata_two_guards_w_virtuals():
py.test.skip("XXX rewrite")
-
+
b1, b2, b3, b4, b5 = [BoxInt(), BoxPtr(), BoxInt(), BoxInt(), BoxInt()]
c1, c2, c3, c4 = [ConstInt(1), ConstInt(2), ConstInt(3),
LLtypeMixin.nodebox.constbox()]
@@ -637,7 +638,7 @@
storage2 = Storage()
fs = fs[:-1] + [FakeFrame("code2", 10, c3, b2, b4)]
capture_resumedata(fs, None, [], storage2)
-
+
memo = ResumeDataLoopMemo(FakeMetaInterpStaticData())
values = {b2: virtual_value(b2, b5, c4)}
modifier = ResumeDataVirtualAdder(storage, memo)
@@ -648,12 +649,12 @@
b6 = BoxPtr()
v6 = virtual_value(b6, c2, None)
- v6.setfield(LLtypeMixin.nextdescr, v6)
+ v6.setfield(LLtypeMixin.nextdescr, v6)
values = {b2: virtual_value(b2, b4, v6), b6: v6}
memo.clear_box_virtual_numbers()
modifier = ResumeDataVirtualAdder(storage2, memo)
liveboxes2 = modifier.finish(FakeOptimizer(values))
- assert len(storage2.rd_virtuals) == 2
+ assert len(storage2.rd_virtuals) == 2
assert storage2.rd_virtuals[0].fieldnums == [tag(len(liveboxes2)-1,
TAGBOX),
tag(-1, TAGVIRTUAL)]
assert storage2.rd_virtuals[1].fieldnums == [tag(2, TAGINT),
@@ -684,7 +685,7 @@
fs2 = [FakeFrame("code0", 0, b1t, c1, b2t),
FakeFrame("code1", 3, b3t, c2, b1t),
FakeFrame("code2", 10, c3, b2t, b4t)]
- assert metainterp.framestack == fs2
+ assert metainterp.framestack == fs2
def test_rebuild_from_resumedata_two_guards_w_shared_virtuals():
py.test.skip("XXX rewrite")
@@ -694,7 +695,7 @@
storage = Storage()
fs = [FakeFrame("code0", 0, c1, b2, b3)]
capture_resumedata(fs, None, [], storage)
-
+
memo = ResumeDataLoopMemo(FakeMetaInterpStaticData())
values = {b2: virtual_value(b2, b5, c4)}
modifier = ResumeDataVirtualAdder(storage, memo)
@@ -712,7 +713,7 @@
assert len(storage2.rd_virtuals) == 2
assert storage2.rd_virtuals[1].fieldnums ==
storage.rd_virtuals[0].fieldnums
assert storage2.rd_virtuals[1] is storage.rd_virtuals[0]
-
+
def test_resumedata_top_recursive_virtuals():
py.test.skip("XXX rewrite")
@@ -720,7 +721,7 @@
storage = Storage()
fs = [FakeFrame("code0", 0, b1, b2)]
capture_resumedata(fs, None, [], storage)
-
+
memo = ResumeDataLoopMemo(FakeMetaInterpStaticData())
v1 = virtual_value(b1, b3, None)
v2 = virtual_value(b2, b3, v1)
@@ -733,7 +734,7 @@
assert storage.rd_virtuals[0].fieldnums == [tag(-1, TAGBOX),
tag(1, TAGVIRTUAL)]
assert storage.rd_virtuals[1].fieldnums == [tag(-1, TAGBOX),
- tag(0, TAGVIRTUAL)]
+ tag(0, TAGVIRTUAL)]
# ____________________________________________________________
@@ -759,7 +760,7 @@
demo55o = lltype.cast_opaque_ptr(llmemory.GCREF, demo55)
demo66 = lltype.malloc(LLtypeMixin.NODE)
demo66o = lltype.cast_opaque_ptr(llmemory.GCREF, demo66)
-
+
def test_ResumeDataLoopMemo_refs():
cpu = LLtypeMixin.cpu
memo = ResumeDataLoopMemo(FakeMetaInterpStaticData())
@@ -767,7 +768,7 @@
tagged = memo.getconst(const)
index, tagbits = untag(tagged)
assert tagbits == TAGCONST
- assert memo.consts[index] is const
+ assert memo.consts[index] is const
tagged = memo.getconst(cpu.ts.ConstRef(demo55o))
index2, tagbits = untag(tagged)
assert tagbits == TAGCONST
@@ -775,7 +776,7 @@
tagged = memo.getconst(cpu.ts.ConstRef(demo66o))
index3, tagbits = untag(tagged)
assert tagbits == TAGCONST
- assert index3 != index
+ assert index3 != index
tagged = memo.getconst(cpu.ts.CONST_NULL)
assert tagged == NULLREF
@@ -789,7 +790,7 @@
def test_ResumeDataLoopMemo_number():
b1, b2, b3, b4, b5 = [BoxInt(), BoxInt(), BoxInt(), BoxPtr(), BoxPtr()]
- c1, c2, c3, c4 = [ConstInt(1), ConstInt(2), ConstInt(3), ConstInt(4)]
+ c1, c2, c3, c4 = [ConstInt(1), ConstInt(2), ConstInt(3), ConstInt(4)]
env = [b1, c1, b2, b1, c2]
snap = Snapshot(None, env)
@@ -814,7 +815,7 @@
numb2, liveboxes2, v = memo.number(FakeOptimizer({}), snap2)
assert v == 0
-
+
assert liveboxes2 == {b1: tag(0, TAGBOX), b2: tag(1, TAGBOX),
b3: tag(2, TAGBOX)}
assert liveboxes2 is not liveboxes
@@ -840,7 +841,7 @@
numb3, liveboxes3, v = memo.number(FakeOptimizer({b3: FakeValue(False,
c4)}),
snap3)
assert v == 0
-
+
assert liveboxes3 == {b1: tag(0, TAGBOX), b2: tag(1, TAGBOX)}
assert list(numb3.nums) == [tag(3, TAGINT), tag(4, TAGINT), tag(0, TAGBOX),
tag(3, TAGINT)]
@@ -848,12 +849,12 @@
# virtual
env4 = [c3, b4, b1, c3]
- snap4 = Snapshot(snap, env4)
+ snap4 = Snapshot(snap, env4)
numb4, liveboxes4, v = memo.number(FakeOptimizer({b4: FakeValue(True,
b4)}),
snap4)
assert v == 1
-
+
assert liveboxes4 == {b1: tag(0, TAGBOX), b2: tag(1, TAGBOX),
b4: tag(0, TAGVIRTUAL)}
assert list(numb4.nums) == [tag(3, TAGINT), tag(0, TAGVIRTUAL),
@@ -861,13 +862,13 @@
assert numb4.prev == numb.prev
env5 = [b1, b4, b5]
- snap5 = Snapshot(snap4, env5)
+ snap5 = Snapshot(snap4, env5)
numb5, liveboxes5, v = memo.number(FakeOptimizer({b4: FakeValue(True, b4),
b5: FakeValue(True,
b5)}),
snap5)
assert v == 2
-
+
assert liveboxes5 == {b1: tag(0, TAGBOX), b2: tag(1, TAGBOX),
b4: tag(0, TAGVIRTUAL), b5: tag(1, TAGVIRTUAL)}
assert list(numb5.nums) == [tag(0, TAGBOX), tag(0, TAGVIRTUAL),
@@ -957,7 +958,7 @@
storage = Storage()
snapshot = Snapshot(None, [b1, ConstInt(1), b1, b2])
snapshot = Snapshot(snapshot, [ConstInt(2), ConstInt(3)])
- snapshot = Snapshot(snapshot, [b1, b2, b3])
+ snapshot = Snapshot(snapshot, [b1, b2, b3])
storage.rd_snapshot = snapshot
storage.rd_frame_info_list = None
return storage
@@ -965,7 +966,7 @@
def test_virtual_adder_int_constants():
b1s, b2s, b3s = [ConstInt(sys.maxint), ConstInt(2**16), ConstInt(-65)]
storage = make_storage(b1s, b2s, b3s)
- memo = ResumeDataLoopMemo(FakeMetaInterpStaticData())
+ memo = ResumeDataLoopMemo(FakeMetaInterpStaticData())
modifier = ResumeDataVirtualAdder(storage, memo)
liveboxes = modifier.finish(FakeOptimizer({}))
assert storage.rd_snapshot is None
@@ -989,7 +990,7 @@
storage2 = make_storage(b1s, b2s, b3s)
modifier2 = ResumeDataVirtualAdder(storage2, memo)
modifier2.finish(FakeOptimizer({}))
- assert len(memo.consts) == 3
+ assert len(memo.consts) == 3
assert storage2.rd_consts is memo.consts
@@ -1053,7 +1054,7 @@
return b1_2
val = FakeValue()
- values = {b1s: val, b2s: val}
+ values = {b1s: val, b2s: val}
liveboxes = modifier.finish(FakeOptimizer(values))
assert storage.rd_snapshot is None
b1t, b3t = [BoxInt(11), BoxInt(33)]
@@ -1066,14 +1067,14 @@
assert_same(lst, [ConstInt(2), ConstInt(3)])
lst = reader.consume_boxes()
assert_same(lst, [b1t, ConstInt(1), b1t, b1t])
- assert metainterp.trace == []
+ assert metainterp.trace == []
def test_virtual_adder_make_constant():
b1s, b2s, b3s = [BoxInt(1), BoxPtr(), BoxInt(3)]
b1s = ConstInt(111)
storage = make_storage(b1s, b2s, b3s)
- memo = ResumeDataLoopMemo(FakeMetaInterpStaticData())
+ memo = ResumeDataLoopMemo(FakeMetaInterpStaticData())
modifier = ResumeDataVirtualAdder(storage, memo)
liveboxes = modifier.finish(FakeOptimizer({}))
b2t, b3t = [BoxPtr(demo55o), BoxInt(33)]
@@ -1091,7 +1092,7 @@
def test_virtual_adder_make_virtual():
- b2s, b3s, b4s, b5s = [BoxPtr(), BoxInt(3), BoxPtr(), BoxPtr()]
+ b2s, b3s, b4s, b5s = [BoxPtr(), BoxInt(3), BoxPtr(), BoxPtr()]
c1s = ConstInt(111)
storage = Storage()
memo = ResumeDataLoopMemo(FakeMetaInterpStaticData())
@@ -1407,7 +1408,7 @@
def test_invalidation_needed():
class options:
failargs_limit = 10
-
+
metainterp_sd = FakeMetaInterpStaticData()
metainterp_sd.options = options
memo = ResumeDataLoopMemo(metainterp_sd)
@@ -1421,5 +1422,5 @@
assert not modifier._invalidation_needed(10, 2)
assert not modifier._invalidation_needed(10, 3)
- assert modifier._invalidation_needed(10, 4)
-
+ assert modifier._invalidation_needed(10, 4)
+
diff --git a/rpython/jit/resume/frontend.py b/rpython/jit/resume/frontend.py
--- a/rpython/jit/resume/frontend.py
+++ b/rpython/jit/resume/frontend.py
@@ -6,6 +6,9 @@
from rpython.jit.metainterp import history
from rpython.jit.codewriter.jitcode import JitCode
from rpython.rlib import rstack
+from rpython.jit.resume.reader import ResumeFrame, Virtual
+from rpython.jit.resume.rescode import TAGBOX, TAGCONST, TAGVIRTUAL, TAGOFFSET
+
@@ -13,7 +16,7 @@
""" A resume reader that can follow resume until given point. Consult
the concrete classes for details
"""
-
+
def __init__(self):
self.framestack = []
self.consts = [] # XXX cache?
@@ -127,7 +130,7 @@
""" Directly read values from the jitframe and put them in the blackhole
interpreter
"""
-
+
def __init__(self, binterpbuilder, cpu, deadframe):
self.bhinterpbuilder = binterpbuilder
self.cpu = cpu
@@ -179,7 +182,7 @@
""" Create boxes corresponding to the resume and store them in
the metainterp
"""
-
+
def __init__(self, metainterp, deadframe):
self.metainterp = metainterp
self.deadframe = deadframe
@@ -284,7 +287,7 @@
pos += 1
self.cache = None
return res, [f.registers for f in self.framestack]
-
+
def rebuild_from_resumedata(metainterp, deadframe, faildescr):
""" Reconstruct metainterp frames from the resumedata
"""
@@ -303,7 +306,7 @@
cpu = metainterp_sd.cpu
last_bhinterp = DirectResumeReader(interpbuilder, cpu,
deadframe).rebuild(faildescr)
-
+
return last_bhinterp
class ResumeRecorder(object):
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit