[pypy-svn] r79981 - pypy/branch/jit-unroll-loops/pypy/jit/metainterp

arigo at codespeak.net arigo at codespeak.net
Sat Dec 11 16:34:08 CET 2010


Author: arigo
Date: Sat Dec 11 16:34:06 2010
New Revision: 79981

Modified:
   pypy/branch/jit-unroll-loops/pypy/jit/metainterp/compile.py
   pypy/branch/jit-unroll-loops/pypy/jit/metainterp/graphpage.py
Log:
More hacks of the same style as r79978.


Modified: pypy/branch/jit-unroll-loops/pypy/jit/metainterp/compile.py
==============================================================================
--- pypy/branch/jit-unroll-loops/pypy/jit/metainterp/compile.py	(original)
+++ pypy/branch/jit-unroll-loops/pypy/jit/metainterp/compile.py	Sat Dec 11 16:34:06 2010
@@ -69,10 +69,12 @@
             if descr is not looptoken:
                 looptoken.record_jump_to(descr)
             op.setdescr(None)    # clear reference, mostly for tests
+            if not we_are_translated():
+                op._jumptarget_number = descr.number
     # mostly for tests: make sure we don't keep a reference to the LoopToken
     loop.token = None
     if not we_are_translated():
-        loop._number = looptoken.number
+        loop._looptoken_number = looptoken.number
 
 # ____________________________________________________________
 

Modified: pypy/branch/jit-unroll-loops/pypy/jit/metainterp/graphpage.py
==============================================================================
--- pypy/branch/jit-unroll-loops/pypy/jit/metainterp/graphpage.py	(original)
+++ pypy/branch/jit-unroll-loops/pypy/jit/metainterp/graphpage.py	Sat Dec 11 16:34:06 2010
@@ -33,8 +33,8 @@
         for graph, highlight in graphs:
             if getattr(graph, 'token', None) is not None:
                 resopgen.jumps_to_graphs[graph.token] = graph
-            if getattr(graph, '_number', None) is not None:
-                resopgen.jumps_to_graphs[graph._number] = graph
+            if getattr(graph, '_looptoken_number', None) is not None:
+                resopgen.jumps_to_graphs[graph._looptoken_number] = graph
         
         for graph, highlight in graphs:
             resopgen.add_graph(graph, highlight)
@@ -170,17 +170,21 @@
                              (graphindex, opindex))
                 break
         if op.getopnum() == rop.JUMP:
-            tgt = op.getdescr()
             tgt_g = -1
-            if tgt is None:
-                tgt_g = graphindex
+            tgt = None
+            tgt_number = getattr(op, '_jumptarget_number', None)
+            if tgt_number is not None:
+                tgt = self.jumps_to_graphs.get(tgt_number)
             else:
-                if tgt in self.jumps_to_graphs:
-                    tgt = self.jumps_to_graphs[tgt]
+                tgt_descr = op.getdescr()
+                if tgt_descr is None:
+                    tgt_g = graphindex
                 else:
-                    tgt = self.jumps_to_graphs.get(tgt.number)
-                if tgt is not None:
-                    tgt_g = self.graphs.index(tgt)
+                    tgt = self.jumps_to_graphs.get(tgt_descr.number)
+                    if tgt is None:
+                        tgt = self.jumps_to_graphs.get(tgt_descr)
+            if tgt is not None:
+                tgt_g = self.graphs.index(tgt)
             if tgt_g != -1:
                 self.genedge((graphindex, opstartindex),
                              (tgt_g, 0),



More information about the Pypy-commit mailing list