Author: Hakan Ardo <ha...@debian.org>
Branch: jit-targets
Changeset: r48771:beacbd0267fc
Date: 2011-11-05 09:04 +0100
http://bitbucket.org/pypy/pypy/changeset/beacbd0267fc/

Log:    place the virtual_state on the target_token

diff --git a/pypy/jit/metainterp/history.py b/pypy/jit/metainterp/history.py
--- a/pypy/jit/metainterp/history.py
+++ b/pypy/jit/metainterp/history.py
@@ -768,6 +768,7 @@
 class TargetToken(AbstractDescr):
     def __init__(self, merge_point):
         self.merge_point = merge_point
+        self.virtual_state = None
         self.exported_state = None
         
 class TreeLoop(object):
diff --git a/pypy/jit/metainterp/optimizeopt/unroll.py 
b/pypy/jit/metainterp/optimizeopt/unroll.py
--- a/pypy/jit/metainterp/optimizeopt/unroll.py
+++ b/pypy/jit/metainterp/optimizeopt/unroll.py
@@ -191,10 +191,11 @@
         target_token = targetop.getdescr()
         assert isinstance(target_token, TargetToken)
         targetop.initarglist(inputargs)
+        target_token.virtual_state = virtual_state
         target_token.exported_state = ExportedState(values, short_inputargs,
                                                     constant_inputargs, 
short_boxes,
                                                     inputarg_setup_ops, 
self.optimizer,
-                                                    virtual_state, 
start_resumedescr)
+                                                    start_resumedescr)
 
     def import_state(self, targetop):
         target_token = targetop.getdescr()
@@ -214,6 +215,7 @@
         self.imported_state = exported_state
         self.inputargs = targetop.getarglist()
         self.start_resumedescr = exported_state.start_resumedescr
+        self.initial_virtual_state = target_token.virtual_state
 
         seen = {}
         for box in self.inputargs:
@@ -252,7 +254,7 @@
         self.optimizer.emitting_dissabled = False
 
     def close_loop(self, jumpop):        
-        virtual_state = self.imported_state.virtual_state
+        virtual_state = self.initial_virtual_state
         short_inputargs = self.imported_state.short_inputargs
         constant_inputargs = self.imported_state.constant_inputargs
         inputargs = self.inputargs
@@ -365,8 +367,6 @@
         inliner.inline_descr_inplace(descr)
         short_loop.start_resumedescr = descr
 
-        short_loop.virtual_state = self.imported_state.virtual_state
-
         # Forget the values to allow them to be freed
         for box in short_loop.inputargs:
             box.forget_value()
@@ -574,7 +574,7 @@
 
 class ExportedState(object):
     def __init__(self, values, short_inputargs, constant_inputargs,
-                 short_boxes, inputarg_setup_ops, optimizer, virtual_state,
+                 short_boxes, inputarg_setup_ops, optimizer,
                  start_resumedescr):
         self.values = values
         self.short_inputargs = short_inputargs
@@ -582,6 +582,5 @@
         self.short_boxes = short_boxes
         self.inputarg_setup_ops = inputarg_setup_ops
         self.optimizer = optimizer
-        self.virtual_state = virtual_state
         self.start_resumedescr = start_resumedescr
         
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to