[pypy-svn] r14087 - in pypy/dist/pypy/translator/llvm2: . test
cfbolz at codespeak.net
cfbolz at codespeak.net
Sat Jul 2 14:00:25 CEST 2005
Author: cfbolz
Date: Sat Jul 2 14:00:25 2005
New Revision: 14087
Removed:
pypy/dist/pypy/translator/llvm2/cfgtransform.py
Modified:
pypy/dist/pypy/translator/llvm2/codewriter.py
pypy/dist/pypy/translator/llvm2/genllvm.py
pypy/dist/pypy/translator/llvm2/test/test_genllvm.py
Log:
(ericvrp, cfbolz)
a small cleanup, a (failing) test for lists and removal
of unneeded cfgtransform (functionality moved to translator/backendoptimization.py
Deleted: /pypy/dist/pypy/translator/llvm2/cfgtransform.py
==============================================================================
--- /pypy/dist/pypy/translator/llvm2/cfgtransform.py Sat Jul 2 14:00:25 2005
+++ (empty file)
@@ -1,44 +0,0 @@
-from pypy.objspace.flow.model import traverse, Block, checkgraph
-from pypy.translator.unsimplify import remove_double_links
-
-
-def remove_same_as(graph):
- same_as_positions = []
- def visit(node):
- if isinstance(node, Block):
- for i, op in enumerate(node.operations):
- if op.opname == 'same_as':
- same_as_positions.append((node, i))
- traverse(visit, graph)
- while same_as_positions:
- block, index = same_as_positions.pop()
- same_as_result = block.operations[index].result
- same_as_arg = block.operations[index].args[0]
- # replace the new variable (same_as_result) with the old variable
- # (from all subsequent positions)
- for op in block.operations[index:]:
- if op is not None:
- for i in range(len(op.args)):
- if op.args[i] == same_as_result:
- op.args[i] = same_as_arg
- for link in block.exits:
- for i in range(len(link.args)):
- if link.args[i] == same_as_result:
- link.args[i] = same_as_arg
- if block.exitswitch == same_as_result:
- block.exitswitch = same_as_arg
- block.operations[index] = None
-
- # remove all same_as operations
- def visit(node):
- if isinstance(node, Block) and node.operations:
- node.operations[:] = filter(None, node.operations)
- traverse(visit, graph)
- checkgraph(graph)
-
-
-def prepare_graph(graph, translator):
- remove_same_as(graph)
- remove_double_links(translator, graph)
- return graph
-
Modified: pypy/dist/pypy/translator/llvm2/codewriter.py
==============================================================================
--- pypy/dist/pypy/translator/llvm2/codewriter.py (original)
+++ pypy/dist/pypy/translator/llvm2/codewriter.py Sat Jul 2 14:00:25 2005
@@ -17,6 +17,9 @@
def comment(self, line):
self.append(";; " + line)
+ def newline(self):
+ self.append("")
+
def indent(self, line):
self.append(" " + line)
Modified: pypy/dist/pypy/translator/llvm2/genllvm.py
==============================================================================
--- pypy/dist/pypy/translator/llvm2/genllvm.py (original)
+++ pypy/dist/pypy/translator/llvm2/genllvm.py Sat Jul 2 14:00:25 2005
@@ -21,7 +21,7 @@
entrynode = db.obj2node[c]
codewriter = CodeWriter()
comment = codewriter.comment
- nl = lambda: codewriter.append("")
+ nl = codewriter.newline
nl(); comment("Type Declarations"); nl()
for typ_decl in db.get_typedecls():
Modified: pypy/dist/pypy/translator/llvm2/test/test_genllvm.py
==============================================================================
--- pypy/dist/pypy/translator/llvm2/test/test_genllvm.py (original)
+++ pypy/dist/pypy/translator/llvm2/test/test_genllvm.py Sat Jul 2 14:00:25 2005
@@ -185,6 +185,16 @@
assert f(-1) == 3
assert f(0) == 5
+def test_list_getitem():
+ def list_getitem(i):
+ l = [1,2,i]
+ return l[i]
+ f = compile_function(list_getitem, [int])
+ assert f(0) == 1
+ assert f(1) == 2
+ assert f(3) == 3
+
+
def DONOT_test_simple_chars():
def char_constant2(s):
s = s + s + s
More information about the Pypy-commit
mailing list