[pypy-commit] pypy jit-leaner-frontend: implement a missing part in compile.py

fijal pypy.commits at gmail.com
Tue Mar 22 07:50:00 EDT 2016


Author: fijal
Branch: jit-leaner-frontend
Changeset: r83247:1b684afa5204
Date: 2016-03-22 13:40 +0200
http://bitbucket.org/pypy/pypy/changeset/1b684afa5204/

Log:	implement a missing part in compile.py

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
@@ -347,6 +347,7 @@
     end_label = ResOperation(rop.LABEL, inputargs[:],
                              descr=loop_jitcell_token)
     #cut_pos = history.get_trace_position()
+    cut = history.get_trace_position()
     history.record(rop.JUMP, jumpargs[:], None, descr=loop_jitcell_token)
     enable_opts = jitdriver_sd.warmstate.enable_opts
     call_pure_results = metainterp.call_pure_results
@@ -359,9 +360,9 @@
                                              metainterp.box_names_memo)
     except InvalidLoop:
         # Fall back on jumping directly to preamble
-        xxxx
-        jump_op = ResOperation(rop.JUMP, inputargs[:], descr=loop_jitcell_token)
-        loop_data = UnrolledLoopData(end_label, jump_op, [jump_op], start_state,
+        history.cut(cut)
+        history.record(rop.JUMP, jumpargs[:], None, descr=loop_jitcell_token)
+        loop_data = UnrolledLoopData(trace, loop_jitcell_token, start_state,
                                      call_pure_results=call_pure_results,
                                      enable_opts=enable_opts,
                                      inline_short_preamble=False)
@@ -370,6 +371,7 @@
                                                  loop_data,
                                                  metainterp.box_names_memo)
         except InvalidLoop:
+            history.cut(cut)
             return None
 
     label_token = loop_info.label_op.getdescr()


More information about the pypy-commit mailing list