[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