[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