Author: Armin Rigo <ar...@tunes.org> Branch: jit-targets Changeset: r48872:50c584a30bb4 Date: 2011-11-07 17:53 +0100 http://bitbucket.org/pypy/pypy/changeset/50c584a30bb4/
Log: Bah. 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 @@ -87,6 +87,8 @@ # constrcucted. if that did not happen the label should not show up # in a trace that will be used assert descr.exported_state is None + if not we_are_translated(): + op._descr_wref = weakref.ref(op._descr) op._descr = None # clear reference, mostly for tests # record this looptoken on the QuasiImmut used in the code if loop.quasi_immutable_deps is not None: diff --git a/pypy/jit/metainterp/graphpage.py b/pypy/jit/metainterp/graphpage.py --- a/pypy/jit/metainterp/graphpage.py +++ b/pypy/jit/metainterp/graphpage.py @@ -26,6 +26,13 @@ def is_interesting_guard(op): return hasattr(op.getdescr(), '_debug_suboperations') +def getdescr(op): + if op._descr is not None: + return op._descr + if hasattr(op, '_descr_wref'): + return op._descr_wref() + return None + class ResOpGraphPage(GraphPage): @@ -77,7 +84,7 @@ mergepointblock = i elif op.getopnum() == rop.LABEL: self.mark_starter(graphindex, i) - self.target_tokens[op.getdescr()] = (graphindex, i) + self.target_tokens[getdescr(op)] = (graphindex, i) mergepointblock = i else: if mergepointblock is not None: @@ -172,8 +179,8 @@ (graphindex, opindex)) break if op.getopnum() == rop.JUMP: - tgt_descr = op.getdescr() - if tgt_descr in self.target_tokens: + tgt_descr = getdescr(op) + if tgt_descr is not None and tgt_descr in self.target_tokens: self.genedge((graphindex, opstartindex), self.target_tokens[tgt_descr], weight="0") _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit