[pypy-svn] r20562 - pypy/dist/pypy/translator/test
pedronis at codespeak.net
pedronis at codespeak.net
Fri Dec 2 01:33:42 CET 2005
Author: pedronis
Date: Fri Dec 2 01:33:41 2005
New Revision: 20562
Modified:
pypy/dist/pypy/translator/test/test_simplify.py
pypy/dist/pypy/translator/test/test_unsimplify.py
Log:
Translator -> TranslationContext
Modified: pypy/dist/pypy/translator/test/test_simplify.py
==============================================================================
--- pypy/dist/pypy/translator/test/test_simplify.py (original)
+++ pypy/dist/pypy/translator/test/test_simplify.py Fri Dec 2 01:33:41 2005
@@ -1,27 +1,29 @@
-from pypy.translator.translator import Translator, graphof
+from pypy.translator.translator import TranslationContext, graphof
+from pypy.translator.backendopt.all import backend_optimizations
from pypy.objspace.flow.model import traverse, Block
+def translate(func, argtypes):
+ t = TranslationContext()
+ t.buildannotator().build_types(func, argtypes)
+ t.buildrtyper().specialize()
+ backend_optimizations(t)
+ return graphof(t, func), t
+
def test_remove_direct_call_without_side_effects():
def f(x):
return x + 123
def g(x):
a = f(x)
return x * 12
- t = Translator(g)
- a = t.annotate([int])
- t.specialize()
- t.backend_optimizations()
- assert len(graphof(t, g).startblock.operations) == 1
+ graph, _ = translate(g, [int])
+ assert len(graph.startblock.operations) == 1
def test_dont_remove_external_calls():
import os
def f(x):
os.close(x)
- t = Translator(f)
- a = t.annotate([int])
- t.specialize()
- t.backend_optimizations()
- assert len(graphof(t, f).startblock.operations) == 1
+ graph, _ = translate(f, [int])
+ assert len(graph.startblock.operations) == 1
def test_remove_recursive_call():
def rec(a):
@@ -32,11 +34,8 @@
def f(x):
a = rec(x)
return x + 12
- t = Translator(f)
- a = t.annotate([int])
- t.specialize()
- t.backend_optimizations()
- assert len(graphof(t, f).startblock.operations)
+ graph, _ = translate(f, [int])
+ assert len(graph.startblock.operations)
def test_dont_remove_if_exception_guarded():
def f(x):
@@ -51,11 +50,8 @@
raise
else:
return 1
- t = Translator(g)
- a = t.annotate([int])
- t.specialize()
- t.backend_optimizations()
- assert graphof(t, g).startblock.operations[-1].opname == 'direct_call'
+ graph, _ = translate(g, [int])
+ assert graph.startblock.operations[-1].opname == 'direct_call'
def test_remove_pointless_keepalive():
@@ -77,15 +73,10 @@
n = c.z2
objectmodel.keepalive_until_here(c, n)
- t = Translator(f)
- a = t.annotate([int])
- t.specialize()
- t.backend_optimizations()
+ graph, t = translate(f, [bool])
#t.view()
- graph = graphof(t, f)
-
for block in graph.iterblocks():
for op in block.operations:
assert op.opname != 'getfield'
Modified: pypy/dist/pypy/translator/test/test_unsimplify.py
==============================================================================
--- pypy/dist/pypy/translator/test/test_unsimplify.py (original)
+++ pypy/dist/pypy/translator/test/test_unsimplify.py Fri Dec 2 01:33:41 2005
@@ -1,6 +1,12 @@
-from pypy.rpython.llinterp import LLInterpreter
-from pypy.translator.translator import Translator, graphof
+from pypy.translator.translator import TranslationContext, graphof
from pypy.translator.unsimplify import split_block
+from pypy.rpython.llinterp import LLInterpreter
+
+def translate(func, argtypes):
+ t = TranslationContext()
+ t.buildannotator().build_types(func, argtypes)
+ t.buildrtyper().specialize()
+ return graphof(t, func), t
def test_split_blocks_simple():
for i in range(4):
@@ -8,10 +14,7 @@
z = x + y
w = x * y
return z + w
- t = Translator(f)
- a = t.annotate([int, int])
- t.specialize()
- graph = graphof(t, f)
+ graph, t = translate(f, [int, int])
split_block(t, graph, graph.startblock, i)
interp = LLInterpreter(t.rtyper)
result = interp.eval_graph(graph, [1, 2])
@@ -24,10 +27,7 @@
return y + 1
else:
return y + 2
- t = Translator(f)
- a = t.annotate([int, int])
- t.specialize()
- graph = graphof(t, f)
+ graph, t = translate(f, [int, int])
split_block(t, graph, graph.startblock, i)
interp = LLInterpreter(t.rtyper)
result = interp.eval_graph(graph, [-12, 2])
@@ -52,10 +52,7 @@
except KeyError:
return 1
return x
- t = Translator(catches)
- a = t.annotate([int])
- t.specialize()
- graph = graphof(t, catches)
+ graph, t = translate(catches, [int])
split_block(t, graph, graph.startblock, i)
interp = LLInterpreter(t.rtyper)
result = interp.eval_graph(graph, [0])
More information about the Pypy-commit
mailing list