[pypy-svn] r21259 - in pypy/dist/pypy/translator/llvm: . backendopt

ericvrp at codespeak.net ericvrp at codespeak.net
Sat Dec 17 20:16:29 CET 2005


Author: ericvrp
Date: Sat Dec 17 20:16:23 2005
New Revision: 21259

Modified:
   pypy/dist/pypy/translator/llvm/backendopt/exception.py
   pypy/dist/pypy/translator/llvm/backendopt/mergemallocs.py
   pypy/dist/pypy/translator/llvm/backendopt/removeexcmallocs.py
   pypy/dist/pypy/translator/llvm/funcnode.py
Log:
use graph.iterblocks()


Modified: pypy/dist/pypy/translator/llvm/backendopt/exception.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/backendopt/exception.py	(original)
+++ pypy/dist/pypy/translator/llvm/backendopt/exception.py	Sat Dec 17 20:16:23 2005
@@ -17,8 +17,7 @@
     global n_calls, n_calls_patched
     n_calls_patched_begin = n_calls_patched
     e = translator.rtyper.getexceptiondata()
-    blocks = [x for x in flatten(graph) if isinstance(x, Block)]
-    for block in blocks:
+    for block in graph.iterblocks():
         last_operation = len(block.operations)-1
         if block.exitswitch == c_last_exception:
             last_operation -= 1

Modified: pypy/dist/pypy/translator/llvm/backendopt/mergemallocs.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/backendopt/mergemallocs.py	(original)
+++ pypy/dist/pypy/translator/llvm/backendopt/mergemallocs.py	Sat Dec 17 20:16:23 2005
@@ -1,4 +1,4 @@
-from pypy.objspace.flow.model import Block, flatten, SpaceOperation, Constant, Variable
+from pypy.objspace.flow.model import SpaceOperation, Constant, Variable
 from pypy.rpython.lltypesystem.lltype import GcStruct, Void, Ptr
 from pypy.translator.llvm.backendopt.support import log
 
@@ -14,8 +14,7 @@
     warning: some will consider this a dirty hack, that's ok! :)
     """
     n_times_merged = 0
-    blocks = [x for x in flatten(graph) if isinstance(x, Block)]
-    for block in blocks:
+    for block in graph.iterblocks():
         mallocs = [[], []]
         for i, op in enumerate(block.operations):
             if op.opname != 'malloc' or op.args[0].value._arrayfld:

Modified: pypy/dist/pypy/translator/llvm/backendopt/removeexcmallocs.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/backendopt/removeexcmallocs.py	(original)
+++ pypy/dist/pypy/translator/llvm/backendopt/removeexcmallocs.py	Sat Dec 17 20:16:23 2005
@@ -18,8 +18,7 @@
     """
     n_removed = 0
     n_removed_of_type = {}
-    blocks = [x for x in flatten(graph) if isinstance(x, Block)]
-    for block in blocks:
+    for block in graph.iterblocks():
         ops = block.operations
         if len(ops) < 3 or \
            ops[0].opname != 'malloc'   or ops[1].opname != 'cast_pointer'   or \

Modified: pypy/dist/pypy/translator/llvm/funcnode.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/funcnode.py	(original)
+++ pypy/dist/pypy/translator/llvm/funcnode.py	Sat Dec 17 20:16:23 2005
@@ -1,5 +1,5 @@
 from pypy.objspace.flow.model import Block, Constant, Link
-from pypy.objspace.flow.model import flatten, mkentrymap, traverse, c_last_exception
+from pypy.objspace.flow.model import mkentrymap, traverse, c_last_exception
 from pypy.rpython.lltypesystem import lltype
 from pypy.translator.llvm.node import LLVMNode, ConstantLLVMNode
 from pypy.translator.llvm.opwriter import OpWriter
@@ -79,11 +79,10 @@
         codewriter.openfunc(self.getdecl(), self is self.db.entrynode)
         nextblock = graph.startblock
         args = graph.startblock.inputargs 
-        l = [x for x in flatten(graph) if isinstance(x, Block)]
         self.block_to_name = {}
-        for i, block in enumerate(l):
+        for i, block in enumerate(graph.iterblocks()):
             self.block_to_name[block] = "block%s" % i
-        for block in l:
+        for block in graph.iterblocks():
             codewriter.label(self.block_to_name[block])
             for name in 'startblock returnblock exceptblock'.split():
                 if block is getattr(graph, name):
@@ -95,8 +94,7 @@
 
     def writecomments(self, codewriter):
         """ write operations strings for debugging purposes. """ 
-        blocks = [x for x in flatten(self.graph) if isinstance(x, Block)]
-        for block in blocks:
+        for block in self.graph.iterblocks():
             for op in block.operations:
                 strop = str(op) + "\n\x00"
                 l = len(strop)



More information about the Pypy-commit mailing list