[pypy-commit] pypy jit-targets: translation fix

hakanardo noreply at buildbot.pypy.org
Sun Nov 13 21:58:51 CET 2011


Author: Hakan Ardo <hakan at debian.org>
Branch: jit-targets
Changeset: r49383:e3289bc8ecbc
Date: 2011-11-13 18:07 +0100
http://bitbucket.org/pypy/pypy/changeset/e3289bc8ecbc/

Log:	translation fix

diff --git a/pypy/jit/metainterp/compile.py b/pypy/jit/metainterp/compile.py
--- a/pypy/jit/metainterp/compile.py
+++ b/pypy/jit/metainterp/compile.py
@@ -169,6 +169,7 @@
 
     loop.original_jitcell_token = jitcell_token
     for label in all_target_tokens:
+        assert isinstance(label, TargetToken)
         label.original_jitcell_token = jitcell_token
     jitcell_token.target_tokens = all_target_tokens
     send_loop_to_backend(greenkey, jitdriver_sd, metainterp_sd, loop, "loop")
@@ -227,7 +228,9 @@
 
     target_token = loop.operations[-1].getdescr()
     resumekey.compile_and_attach(metainterp, loop)
-    label.getdescr().original_jitcell_token = loop.original_jitcell_token
+    target_token = label.getdescr()
+    assert isinstance(target_token, TargetToken)
+    target_token.original_jitcell_token = loop.original_jitcell_token
     record_loop_or_bridge(metainterp_sd, loop)
     return target_token
 
diff --git a/pypy/jit/metainterp/optimizeopt/simplify.py b/pypy/jit/metainterp/optimizeopt/simplify.py
--- a/pypy/jit/metainterp/optimizeopt/simplify.py
+++ b/pypy/jit/metainterp/optimizeopt/simplify.py
@@ -40,7 +40,9 @@
         assert isinstance(descr, JitCellToken)
         if not descr.target_tokens:
             assert self.last_label_descr is not None
-            assert self.last_label_descr.targeting_jitcell_token is descr
+            target_token = self.last_label_descr
+            assert isinstance(target_token, TargetToken)
+            assert target_token.targeting_jitcell_token is descr
             op.setdescr(self.last_label_descr)
         else:
             assert len(descr.target_tokens) == 1
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
@@ -24,7 +24,6 @@
         self.importable_values = {}
         self.emitting_dissabled = False
         self.emitted_guards = 0
-        self.inline_short_preamble = True
 
     def ensure_imported(self, value):
         if not self.emitting_dissabled and value in self.importable_values:
@@ -51,6 +50,9 @@
     become the preamble or entry bridge (don't think there is a
     distinction anymore)"""
 
+    inline_short_preamble = True
+    did_import = False
+    
     def __init__(self, metainterp_sd, loop, optimizations):
         self.optimizer = UnrollableOptimizer(metainterp_sd, loop, optimizations)
 
@@ -110,7 +112,11 @@
             self.export_state(stop_label)
             loop.operations.append(stop_label)            
         else:
-            assert stop_label.getdescr().targeting_jitcell_token is start_label.getdescr().targeting_jitcell_token
+            stop_target = stop_label.getdescr()
+            start_target = start_label.getdescr()
+            assert isinstance(stop_target, TargetToken)
+            assert isinstance(start_target, TargetToken)
+            assert stop_target.targeting_jitcell_token is start_target.targeting_jitcell_token
             jumpop = ResOperation(rop.JUMP, stop_label.getarglist(), None, descr=start_label.getdescr())
 
             self.close_loop(jumpop)
@@ -324,7 +330,9 @@
 
         maxguards = self.optimizer.metainterp_sd.warmrunnerdesc.memory_manager.max_retrace_guards
         if self.optimizer.emitted_guards > maxguards:
-            jumpop.getdescr().targeting_jitcell_token.retraced_count = sys.maxint
+            target_token = jumpop.getdescr()
+            assert isinstance(target_token, TargetToken)
+            target_token.targeting_jitcell_token.retraced_count = sys.maxint
             
     def finilize_short_preamble(self, start_label):
         short = self.short
diff --git a/pypy/jit/metainterp/pyjitpl.py b/pypy/jit/metainterp/pyjitpl.py
--- a/pypy/jit/metainterp/pyjitpl.py
+++ b/pypy/jit/metainterp/pyjitpl.py
@@ -2037,6 +2037,7 @@
                                                 live_arg_boxes[num_green_args:],
                                                 start_resumedescr)
             if target_token is not None:
+                assert isinstance(target_token, TargetToken)
                 self.jitdriver_sd.warmstate.attach_procedure_to_interp(greenkey, target_token.targeting_jitcell_token)
                 self.staticdata.stats.add_jitcell_token(target_token.targeting_jitcell_token)
 
@@ -2044,6 +2045,7 @@
         if target_token is not None: # raise if it *worked* correctly
             self.history.inputargs = None
             self.history.operations = None
+            assert isinstance(target_token, TargetToken)
             raise GenerateMergePoint(live_arg_boxes, target_token.targeting_jitcell_token)
 
     def compile_trace(self, live_arg_boxes, start_resumedescr):
@@ -2064,6 +2066,7 @@
         if target_token is not None: # raise if it *worked* correctly
             self.history.inputargs = None
             self.history.operations = None
+            assert isinstance(target_token, TargetToken)
             raise GenerateMergePoint(live_arg_boxes, target_token.targeting_jitcell_token)
 
     def compile_bridge_and_loop(self, original_boxes, live_arg_boxes, start,


More information about the pypy-commit mailing list