Author: Maciej Fijalkowski <[email protected]>
Branch: optresult-unroll
Changeset: r78952:c51373696582
Date: 2015-08-12 19:15 +0200
http://bitbucket.org/pypy/pypy/changeset/c51373696582/
Log: fix some tests in test_optimizebasic
diff --git a/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
b/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
@@ -2881,8 +2881,8 @@
[p1, i1, p2, i2]
setfield_gc(p2, i2, descr=adescr)
i3 = call_i(i1, descr=readadescr)
+ setfield_gc(p2, i3, descr=adescr)
setfield_gc(p1, i3, descr=valuedescr)
- setfield_gc(p2, i3, descr=adescr)
jump(p1, i1, p2, i2)
"""
self.optimize_loop(ops, expected)
@@ -2893,16 +2893,16 @@
setfield_gc(p1, i1, descr=valuedescr)
setfield_gc(p2, i2, descr=adescr)
i3 = call_i(i1, descr=writeadescr)
+ setfield_gc(p2, i3, descr=adescr)
setfield_gc(p1, i3, descr=valuedescr)
- setfield_gc(p2, i3, descr=adescr)
jump(p1, i1, p2, i2)
"""
expected = """
[p1, i1, p2, i2]
setfield_gc(p2, i2, descr=adescr)
i3 = call_i(i1, descr=writeadescr)
+ setfield_gc(p2, i3, descr=adescr)
setfield_gc(p1, i3, descr=valuedescr)
- setfield_gc(p2, i3, descr=adescr)
jump(p1, i1, p2, i2)
"""
self.optimize_loop(ops, expected)
@@ -2913,11 +2913,20 @@
setfield_gc(p1, i1, descr=valuedescr)
setfield_gc(p2, i2, descr=adescr)
i3 = call_i(i1, descr=plaincalldescr)
+ setfield_gc(p2, i3, descr=adescr)
setfield_gc(p1, i3, descr=valuedescr)
+ jump(p1, i1, p2, i2)
+ """
+ expected = """
+ [p1, i1, p2, i2]
+ setfield_gc(p2, i2, descr=adescr)
+ setfield_gc(p1, i1, descr=valuedescr)
+ i3 = call_i(i1, descr=plaincalldescr)
setfield_gc(p2, i3, descr=adescr)
+ setfield_gc(p1, i3, descr=valuedescr)
jump(p1, i1, p2, i2)
"""
- self.optimize_loop(ops, ops)
+ self.optimize_loop(ops, expected)
def test_call_assembler_invalidates_caches(self):
ops = '''
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
@@ -432,7 +432,7 @@
assert equaloplists(optimized.operations,
expected.operations, False, remap, text_right)
- def _do_optimize_loop(self, compile_data, call_pure_results=None):
+ def _do_optimize_loop(self, compile_data):
from rpython.jit.metainterp.optimizeopt import optimize_trace
metainterp_sd = FakeMetaInterpStaticData(self.cpu)
if hasattr(self, 'vrefinfo'):
@@ -441,12 +441,6 @@
metainterp_sd.callinfocollection = self.callinfocollection
#
compile_data.enable_opts = self.enable_opts
- new_call_pure_results = args_dict()
- if call_pure_results is not None:
- for k, v in call_pure_results.items():
- new_call_pure_results[list(k)] = v
-
- compile_data.call_pure_results = new_call_pure_results
state = optimize_trace(metainterp_sd, None, compile_data)
return state
@@ -467,14 +461,16 @@
ops = loop.operations[:-1]
start_label = ResOperation(rop.LABEL, loop.inputargs)
end_label = jump_op.copy_and_change(opnum=rop.LABEL)
- preamble_data = compile.LoopCompileData(start_label, end_label, ops)
- start_state, preamble_ops = self._do_optimize_loop(preamble_data,
- call_pure_results)
+ call_pure_results = self._convert_call_pure_results(call_pure_results)
+ preamble_data = compile.LoopCompileData(start_label, end_label, ops,
+ call_pure_results)
+ start_state, preamble_ops = self._do_optimize_loop(preamble_data)
preamble_data.forget_optimization_info()
end_label = ResOperation(rop.LABEL, start_state.end_args)
loop_data = compile.UnrolledLoopData(end_label, jump_op,
- ops, start_state)
- loop_info, ops = self._do_optimize_loop(loop_data, call_pure_results)
+ ops, start_state,
+ call_pure_results)
+ loop_info, ops = self._do_optimize_loop(loop_data)
preamble = TreeLoop('preamble')
preamble.inputargs = start_state.renamed_inputargs
start_label = ResOperation(rop.LABEL, start_state.renamed_inputargs)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit