[pypy-svn] rev 2556 - pypy/trunk/src/pypy/translator
arigo at codespeak.net
arigo at codespeak.net
Fri Dec 19 13:29:12 CET 2003
Author: arigo
Date: Fri Dec 19 13:29:12 2003
New Revision: 2556
Modified:
pypy/trunk/src/pypy/translator/annrpython.py
Log:
Added the dependency tracking and block reflowing.
XXX Needs to be tested explicitely.
Modified: pypy/trunk/src/pypy/translator/annrpython.py
==============================================================================
--- pypy/trunk/src/pypy/translator/annrpython.py (original)
+++ pypy/trunk/src/pypy/translator/annrpython.py Fri Dec 19 13:29:12 2003
@@ -62,7 +62,7 @@
#___ medium-level interface ____________________________
- def addpendingblock(self, block, cells):
+ def addpendingblock(self, block, cells=None):
"""Register an entry point into block with the given input cells."""
self.pendingblocks.append((block, cells))
@@ -158,7 +158,7 @@
# When flowin succeeds, i.e. when the analysis progress,
# we can tentatively re-schedlue the delayed blocks.
for block in self.delayedblocks:
- self.pendingblocks.append((block, None))
+ self.addpendingblock(block)
del self.delayedblocks[:]
def bindinputargs(self, block, inputcells):
@@ -185,8 +185,10 @@
return
def flowin(self, block):
+ self.heap.enter(block, self.addpendingblock)
for op in block.operations:
self.consider_op(op)
+ self.heap.leave()
for link in block.exits:
cells = [self.binding(a) for a in link.args]
self.addpendingblock(link.target, cells)
More information about the Pypy-commit
mailing list