Author: Maciej Fijalkowski <[email protected]>
Branch: result-in-resops
Changeset: r57602:1d5bb84dff24
Date: 2012-09-26 11:30 +0200
http://bitbucket.org/pypy/pypy/changeset/1d5bb84dff24/
Log: port some tests. now officially at 2/3 of the file
diff --git a/pypy/jit/metainterp/optimizeopt/__init__.py
b/pypy/jit/metainterp/optimizeopt/__init__.py
--- a/pypy/jit/metainterp/optimizeopt/__init__.py
+++ b/pypy/jit/metainterp/optimizeopt/__init__.py
@@ -10,7 +10,7 @@
from pypy.jit.metainterp.optimizeopt.earlyforce import OptEarlyForce
from pypy.rlib.jit import PARAMETERS, ENABLE_ALL_OPTS
from pypy.rlib.unroll import unrolling_iterable
-from pypy.rlib.debug import debug_start, debug_stop, debug_print
+from pypy.rlib.debug import debug_start, debug_stop
ALL_OPTS = [('intbounds', OptIntBounds),
@@ -47,7 +47,8 @@
return optimizations, unroll
-def optimize_trace(metainterp_sd, loop, enable_opts,
inline_short_preamble=True):
+def optimize_trace(jitdriver_sd, metainterp_sd, loop, enable_opts,
+ inline_short_preamble=True):
"""Optimize loop.operations to remove internal overheadish operations.
"""
debug_start("jit-optimize")
@@ -58,7 +59,8 @@
if unroll:
optimize_unroll(metainterp_sd, loop, optimizations,
inline_short_preamble)
else:
- optimizer = Optimizer(metainterp_sd, loop, optimizations)
+ optimizer = Optimizer(jitdriver_sd, metainterp_sd, loop,
+ optimizations)
optimizer.propagate_all_forward()
finally:
debug_stop("jit-optimize")
diff --git a/pypy/jit/metainterp/optimizeopt/optimizer.py
b/pypy/jit/metainterp/optimizeopt/optimizer.py
--- a/pypy/jit/metainterp/optimizeopt/optimizer.py
+++ b/pypy/jit/metainterp/optimizeopt/optimizer.py
@@ -360,7 +360,8 @@
class Optimizer(Optimization):
- def __init__(self, metainterp_sd, loop, optimizations=None):
+ def __init__(self, jitdriver_sd, metainterp_sd, loop, optimizations=None):
+ self.jitdriver_sd = jitdriver_sd
self.metainterp_sd = metainterp_sd
self.cpu = metainterp_sd.cpu
self.loop = loop
@@ -599,7 +600,7 @@
# means we need to copy the op and attach a new descr
xxx
op = op.copy_and_change(op.getopnum(), descr=None)
- descr = op.invent_descr()
+ descr = op.invent_descr(self.jitdriver_sd, self.metainterp_sd)
modifier = resume.ResumeDataVirtualAdder(descr, self.resumedata_memo)
try:
newboxes = modifier.finish(self, self.pendingfields)
diff --git a/pypy/jit/metainterp/optimizeopt/test/test_optimizebasic.py
b/pypy/jit/metainterp/optimizeopt/test/test_optimizebasic.py
--- a/pypy/jit/metainterp/optimizeopt/test/test_optimizebasic.py
+++ b/pypy/jit/metainterp/optimizeopt/test/test_optimizebasic.py
@@ -16,7 +16,7 @@
from pypy.jit.metainterp.resume import tag, TAGBOX
b0 = BoxInt()
b1 = BoxInt()
- opt = optimizeopt.Optimizer(FakeMetaInterpStaticData(LLtypeMixin.cpu),
+ opt = optimizeopt.Optimizer(None,
FakeMetaInterpStaticData(LLtypeMixin.cpu),
None)
op = create_resop_1(rop.GUARD_TRUE, None, BoxInt(0))
# setup rd data
@@ -3005,7 +3005,7 @@
#
p2 = virtual_ref(p1, 3)
setfield_gc(p0, p2, descr=nextdescr)
- call_may_force(i1, descr=mayforcevirtdescr)
+ call_may_force_n(i1, descr=mayforcevirtdescr)
guard_not_forced() [i1]
virtual_ref_finish(p2, p1)
setfield_gc(p0, NULL, descr=nextdescr)
@@ -3019,7 +3019,7 @@
setfield_gc(p2, i3, descr=virtualtokendescr)
setfield_gc(p0, p2, descr=nextdescr)
#
- call_may_force(i1, descr=mayforcevirtdescr)
+ call_may_force_n(i1, descr=mayforcevirtdescr)
guard_not_forced() [i1]
#
setfield_gc(p0, NULL, descr=nextdescr)
@@ -3044,8 +3044,8 @@
#
p2 = virtual_ref(p1, 2)
setfield_gc(p0, p2, descr=nextdescr)
- call_may_force(i1, descr=mayforcevirtdescr)
- guard_not_forced(descr=fdescr) [p2, p1]
+ call_may_force_n(i1, descr=mayforcevirtdescr)
+ guard_not_forced() [p2, p1]
virtual_ref_finish(p2, p1)
setfield_gc(p0, NULL, descr=nextdescr)
jump(p0, i1)
@@ -3058,8 +3058,8 @@
setfield_gc(p2, i3, descr=virtualtokendescr)
setfield_gc(p0, p2, descr=nextdescr)
#
- call_may_force(i1, descr=mayforcevirtdescr)
- guard_not_forced(descr=fdescr) [p2, i1]
+ call_may_force_n(i1, descr=mayforcevirtdescr)
+ guard_not_forced() [p2, i1]
#
setfield_gc(p0, NULL, descr=nextdescr)
p1 = new_with_vtable(ConstClass(node_vtable))
@@ -3089,8 +3089,8 @@
#
p2 = virtual_ref(p1, 2)
setfield_gc(p0, p2, descr=refdescr)
- call(i1, descr=nonwritedescr)
- guard_no_exception(descr=fdescr) [p2, p1]
+ call_n(i1, descr=nonwritedescr)
+ guard_no_exception() [p2, p1]
virtual_ref_finish(p2, p1)
setfield_gc(p0, NULL, descr=refdescr)
jump(p0, i1)
@@ -3098,8 +3098,8 @@
expected = """
[p0, i1]
i3 = force_token()
- call(i1, descr=nonwritedescr)
- guard_no_exception(descr=fdescr) [i3, i1, p0]
+ call_n(i1, descr=nonwritedescr)
+ guard_no_exception() [i3, i1, p0]
setfield_gc(p0, NULL, descr=refdescr)
jump(p0, i1)
"""
@@ -3123,7 +3123,7 @@
p2 = virtual_ref(p1, 7)
escape(p2)
virtual_ref_finish(p2, p1)
- call_may_force(i1, descr=mayforcevirtdescr)
+ call_may_force_n(i1, descr=mayforcevirtdescr)
guard_not_forced() []
jump(i1)
"""
@@ -3136,7 +3136,7 @@
p1 = new_with_vtable(ConstClass(node_vtable))
setfield_gc(p2, p1, descr=virtualforceddescr)
setfield_gc(p2, -3, descr=virtualtokendescr)
- call_may_force(i1, descr=mayforcevirtdescr)
+ call_may_force_n(i1, descr=mayforcevirtdescr)
guard_not_forced() []
jump(i1)
"""
@@ -3148,7 +3148,7 @@
p2 = virtual_ref(p1, 23)
escape(p2)
virtual_ref_finish(p2, p1)
- call_may_force(i1, descr=mayforcevirtdescr)
+ call_may_force_n(i1, descr=mayforcevirtdescr)
guard_not_forced() [i1]
jump(i1, p1)
"""
@@ -3160,7 +3160,7 @@
escape(p2)
setfield_gc(p2, p1, descr=virtualforceddescr)
setfield_gc(p2, -3, descr=virtualtokendescr)
- call_may_force(i1, descr=mayforcevirtdescr)
+ call_may_force_n(i1, descr=mayforcevirtdescr)
guard_not_forced() [i1]
jump(i1, p1)
"""
@@ -3173,8 +3173,8 @@
setarrayitem_gc(p1, 1, 1, descr=arraydescr)
p2 = new_array(3, descr=arraydescr)
setarrayitem_gc(p2, 1, 3, descr=arraydescr)
- call(0, p1, p2, 1, 1, 2, descr=arraycopydescr)
- i2 = getarrayitem_gc(p2, 1, descr=arraydescr)
+ call_n(0, p1, p2, 1, 1, 2, descr=arraycopydescr)
+ i2 = getarrayitem_gc_i(p2, 1, descr=arraydescr)
jump(i2)
'''
expected = '''
@@ -3190,8 +3190,8 @@
p2 = new_array(3, descr=arraydescr)
setarrayitem_gc(p1, 0, i0, descr=arraydescr)
setarrayitem_gc(p2, 0, 3, descr=arraydescr)
- call(0, p1, p2, 1, 1, 2, descr=arraycopydescr)
- i2 = getarrayitem_gc(p2, 0, descr=arraydescr)
+ call_n(0, p1, p2, 1, 1, 2, descr=arraycopydescr)
+ i2 = getarrayitem_gc_i(p2, 0, descr=arraydescr)
jump(i2)
'''
expected = '''
@@ -3207,7 +3207,7 @@
p2 = new_array(3, descr=arraydescr)
setarrayitem_gc(p1, 2, 10, descr=arraydescr)
setarrayitem_gc(p2, 2, 13, descr=arraydescr)
- call(0, p1, p2, 0, 0, 3, descr=arraycopydescr)
+ call_n(0, p1, p2, 0, 0, 3, descr=arraycopydescr)
jump(p2)
'''
expected = '''
@@ -3224,7 +3224,7 @@
ops = '''
[p1]
p0 = new_array(0, descr=arraydescr)
- call(0, p0, p1, 0, 0, 0, descr=arraycopydescr)
+ call_n(0, p0, p1, 0, 0, 0, descr=arraycopydescr)
jump(p1)
'''
expected = '''
diff --git a/pypy/jit/metainterp/optimizeopt/test/test_util.py
b/pypy/jit/metainterp/optimizeopt/test/test_util.py
--- a/pypy/jit/metainterp/optimizeopt/test/test_util.py
+++ b/pypy/jit/metainterp/optimizeopt/test/test_util.py
@@ -430,6 +430,7 @@
self.loop = loop
metainterp_sd = FakeMetaInterpStaticData(self.cpu)
+ jitdriver_sd = None
if hasattr(self, 'vrefinfo'):
metainterp_sd.virtualref_info = self.vrefinfo
if hasattr(self, 'callinfocollection'):
@@ -440,7 +441,7 @@
fail_args = op.get_extra("failargs")
op._rd_frame_info_list = resume.FrameInfo(None, "code", 11)
op._rd_snapshot = resume.Snapshot(None, _sortboxes(fail_args))
- optimize_trace(metainterp_sd, loop, self.enable_opts)
+ optimize_trace(jitdriver_sd, metainterp_sd, loop, self.enable_opts)
def unroll_and_optimize(self, loop):
operations = loop.operations
diff --git a/pypy/jit/metainterp/resoperation.py
b/pypy/jit/metainterp/resoperation.py
--- a/pypy/jit/metainterp/resoperation.py
+++ b/pypy/jit/metainterp/resoperation.py
@@ -1048,13 +1048,12 @@
raise Exception("rd_frame_info_list already set")
self._rd_frame_info_list = rd_frame_info_list
- def invent_descr(self):
+ def invent_descr(self, jitdriver_sd, metainterp_sd):
from pypy.jit.metainterp import compile
opnum = self.getopnum()
if opnum == rop.GUARD_NOT_FORCED:
- descr = compile.ResumeGuardForcedDescr(metainterp_sd,
- metainterp.jitdriver_sd)
+ descr = compile.ResumeGuardForcedDescr(metainterp_sd, jitdriver_sd)
elif opnum == rop.GUARD_NOT_INVALIDATED:
descr = compile.ResumeGuardNotInvalidated()
else:
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit