[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