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
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit