[pypy-svn] r29831 - pypy/dist/pypy/jit/timeshifter

pedronis at codespeak.net pedronis at codespeak.net
Sat Jul 8 16:03:04 CEST 2006


Author: pedronis
Date: Sat Jul  8 16:03:00 2006
New Revision: 29831

Modified:
   pypy/dist/pypy/jit/timeshifter/rtimeshift.py
Log:
(arre, pedronis)

try to repair the timeshifter breakage caused by the last refactoring.



Modified: pypy/dist/pypy/jit/timeshifter/rtimeshift.py
==============================================================================
--- pypy/dist/pypy/jit/timeshifter/rtimeshift.py	(original)
+++ pypy/dist/pypy/jit/timeshifter/rtimeshift.py	Sat Jul  8 16:03:00 2006
@@ -253,12 +253,18 @@
     return -1
 
 def save_return(jitstate, redboxes):
-    jitstate.returnbox = redboxes[0]
-
+    returnbox = redboxes[0]
+    jitstate.return_queue.append((jitstate.curbuilder, returnbox))
+    
 def prepare_return(jitstate, cache, gv_return_type):
+    for builder, retbox in jitstate.return_queue[:-1]:
+        builder.leave_block()
+        jitstate.curbuilder = builder
+        retrieve_jitstate_for_merge(cache, jitstate, (), [retbox])
     frozens, block = cache[()]
+    _, returnbox = jitstate.return_queue[-1]
     builder = ResidualGraphBuilder(block)
-    builder.valuebox = jitstate.returnbox
+    builder.valuebox = returnbox
     return builder
 
 def ll_gvar_from_redbox(jitstate, redbox):
@@ -332,6 +338,7 @@
 
     def __init__(self, builder):
         self.split_queue = []
+        self.return_queue = []
         self.curbuilder = builder
 
 



More information about the Pypy-commit mailing list