Author: Maciej Fijalkowski <fij...@gmail.com> 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 pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit