[pypy-svn] r17816 - pypy/dist/pypy/translator
arigo at codespeak.net
arigo at codespeak.net
Sat Sep 24 12:44:06 CEST 2005
Author: arigo
Date: Sat Sep 24 12:44:02 2005
New Revision: 17816
Modified:
pypy/dist/pypy/translator/annrpython.py
pypy/dist/pypy/translator/transform.py
Log:
Who would have guessed that annotator.complete() would call
getreturnvar() 39'439'040 times?
Plus, let's use dict.fromkeys() more freely.
Modified: pypy/dist/pypy/translator/annrpython.py
==============================================================================
--- pypy/dist/pypy/translator/annrpython.py (original)
+++ pypy/dist/pypy/translator/annrpython.py Sat Sep 24 12:44:02 2005
@@ -193,7 +193,13 @@
self.annotated.values().count(False))
# make sure that the return variables of all graphs is annotated
if self.translator is not None:
- for graph in self.translator.flowgraphs.values():
+ if self.added_blocks is not None:
+ newgraphs = [self.translator.flowgraphs[self.annotated[block]]
+ for block in self.added_blocks]
+ newgraphs = dict.fromkeys(newgraphs)
+ else:
+ newgraphs = self.translator.flowgraphs.itervalues() #all of them
+ for graph in newgraphs:
v = graph.getreturnvar()
if v not in self.bindings:
self.setbinding(v, annmodel.SomeImpossibleValue())
Modified: pypy/dist/pypy/translator/transform.py
==============================================================================
--- pypy/dist/pypy/translator/transform.py (original)
+++ pypy/dist/pypy/translator/transform.py Sat Sep 24 12:44:02 2005
@@ -17,13 +17,10 @@
def checkgraphs(self, blocks):
- seen = {}
- for block in blocks:
- fn = self.annotated[block]
- graph = self.translator.flowgraphs[fn]
- if graph not in seen:
- checkgraph(graph)
- seen[graph] = True
+ all_graphs = [self.translator.flowgraphs[fn]
+ for fn in self.annotated.itervalues()]
+ for graph in dict.fromkeys(all_graphs):
+ checkgraph(graph)
def fully_annotated_blocks(self):
"""Ignore blocked blocks."""
More information about the Pypy-commit
mailing list