Author: fijal Branch: jit-leaner-frontend Changeset: r82898:670c52c38925 Date: 2016-03-09 10:03 +0200 http://bitbucket.org/pypy/pypy/changeset/670c52c38925/
Log: fix the cutting and starting point, enough to pass test_loop (without unrolling) diff --git a/rpython/jit/metainterp/compile.py b/rpython/jit/metainterp/compile.py --- a/rpython/jit/metainterp/compile.py +++ b/rpython/jit/metainterp/compile.py @@ -243,6 +243,7 @@ metainterp_sd = metainterp.staticdata jitdriver_sd = metainterp.jitdriver_sd history = metainterp.history + trace = history.trace warmstate = jitdriver_sd.warmstate enable_opts = jitdriver_sd.warmstate.enable_opts @@ -252,15 +253,15 @@ enable_opts = enable_opts.copy() del enable_opts['unroll'] - assert start == 0 - #ops = history.operations[start:] jitcell_token = make_jitcell_token(jitdriver_sd) history.record(rop.JUMP, jumpargs, None, descr=jitcell_token) + if start != (0, 0): + trace = trace.cut_trace_from(start, inputargs) if 'unroll' not in enable_opts or not metainterp.cpu.supports_guard_gc_type: - return compile_simple_loop(metainterp, greenkey, history.trace, + return compile_simple_loop(metainterp, greenkey, trace, enable_opts) call_pure_results = metainterp.call_pure_results - preamble_data = LoopCompileData(history.trace, inputargs, + preamble_data = LoopCompileData(trace, inputargs, call_pure_results=call_pure_results, enable_opts=enable_opts) try: @@ -275,7 +276,7 @@ start_descr = TargetToken(jitcell_token, original_jitcell_token=jitcell_token) jitcell_token.target_tokens = [start_descr] - loop_data = UnrolledLoopData(history.trace, jitcell_token, start_state, + loop_data = UnrolledLoopData(trace, jitcell_token, start_state, call_pure_results=call_pure_results, enable_opts=enable_opts) try: diff --git a/rpython/jit/metainterp/pyjitpl.py b/rpython/jit/metainterp/pyjitpl.py --- a/rpython/jit/metainterp/pyjitpl.py +++ b/rpython/jit/metainterp/pyjitpl.py @@ -2317,7 +2317,7 @@ def _compile_and_run_once(self, original_boxes): self.initialize_state_from_start(original_boxes) - self.current_merge_points = [(original_boxes, 0)] + self.current_merge_points = [(original_boxes, (0, 0))] num_green_args = self.jitdriver_sd.num_green_args original_greenkey = original_boxes[:num_green_args] self.resumekey = compile.ResumeFromInterpDescr(original_greenkey) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit