[pypy-svn] r13909 - pypy/dist/pypy/translator
pedronis at codespeak.net
pedronis at codespeak.net
Sun Jun 26 02:44:52 CEST 2005
Author: pedronis
Date: Sun Jun 26 02:44:52 2005
New Revision: 13909
Modified:
pypy/dist/pypy/translator/transform.py
Log:
in transform_graph check the graphs only of the touched blocks
Modified: pypy/dist/pypy/translator/transform.py
==============================================================================
--- pypy/dist/pypy/translator/transform.py (original)
+++ pypy/dist/pypy/translator/transform.py Sun Jun 26 02:44:52 2005
@@ -10,11 +10,18 @@
import types
from pypy.objspace.flow.model import SpaceOperation
from pypy.objspace.flow.model import Variable, Constant, Block, Link
-from pypy.objspace.flow.model import last_exception
+from pypy.objspace.flow.model import last_exception, checkgraph
from pypy.translator.annrpython import CannotSimplify
from pypy.annotation import model as annmodel
from pypy.annotation.specialize import MemoTable
+
+def checkgraphs(self, blocks):
+ for block in blocks:
+ fn = self.annotated[block]
+ graph = self.translator.flowgraphs[fn]
+ checkgraph(graph)
+
def fully_annotated_blocks(self):
"""Ignore blocked blocks."""
for block, is_annotated in self.annotated.iteritems():
@@ -177,14 +184,14 @@
"""Apply set of transformations available."""
# WARNING: this produces incorrect results if the graph has been
# modified by t.simplify() after it had been annotated.
- if ann.translator:
- ann.translator.checkgraphs()
if block_subset is None:
block_subset = fully_annotated_blocks(ann)
d = {}
for block in block_subset:
d[block] = True
block_subset = d
+ if ann.translator:
+ checkgraphs(ann, block_subset)
transform_dead_code(ann, block_subset)
for pass_ in extra_passes:
pass_(ann, block_subset)
@@ -192,4 +199,5 @@
# chance to remove dependency on certain variables
transform_dead_op_vars(ann, block_subset)
if ann.translator:
- ann.translator.checkgraphs()
+ checkgraphs(ann, block_subset)
+
More information about the Pypy-commit
mailing list