[pypy-svn] r33801 - in pypy/dist/pypy/translator/backendopt: . test

cfbolz at codespeak.net cfbolz at codespeak.net
Fri Oct 27 12:11:21 CEST 2006


Author: cfbolz
Date: Fri Oct 27 12:11:18 2006
New Revision: 33801

Removed:
   pypy/dist/pypy/translator/backendopt/propagate.py
   pypy/dist/pypy/translator/backendopt/test/test_propagate.py
Modified:
   pypy/dist/pypy/translator/backendopt/all.py
   pypy/dist/pypy/translator/backendopt/test/test_removenoops.py
Log:
remove propagate: it's obscure, didn't provide any benefit and was off by
default (can be found in my hack directory now).


Modified: pypy/dist/pypy/translator/backendopt/all.py
==============================================================================
--- pypy/dist/pypy/translator/backendopt/all.py	(original)
+++ pypy/dist/pypy/translator/backendopt/all.py	Fri Oct 27 12:11:18 2006
@@ -2,7 +2,6 @@
 from pypy.translator.backendopt import removenoops
 from pypy.translator.backendopt import inline
 from pypy.translator.backendopt.malloc import remove_simple_mallocs
-from pypy.translator.backendopt.propagate import propagate_all
 from pypy.translator.backendopt.constfold import constant_fold_graph
 from pypy.translator.backendopt.stat import print_statistics
 from pypy.translator.backendopt.merge_if_blocks import merge_if_blocks
@@ -17,7 +16,6 @@
                                       inline_threshold=1,
                                       mallocs=True,
                                       merge_if_blocks_to_switch=True,
-                                      propagate=False,
                                       constfold=True,
                                       heap2stack=False,
                                       clever_malloc_removal=False):
@@ -29,7 +27,6 @@
     mallocs = config.mallocs or mallocs
     merge_if_blocks_to_switch = (config.merge_if_blocks or
         merge_if_blocks_to_switch)
-    propagate = config.propagate or propagate
     constfold = config.constfold or constfold
     heap2stack = config.heap2stack or heap2stack
     clever_malloc_removal = config.clever_malloc_removal or clever_malloc_removal
@@ -55,11 +52,6 @@
         print "after no-op removal:"
         print_statistics(translator.graphs[0], translator)
 
-    # ...
-    if propagate:
-        assert graphs is translator.graphs  # XXX for now
-        propagate_all(translator)
-
     if not clever_malloc_removal:
         # inline functions in each other
         if inline_threshold:
@@ -102,10 +94,6 @@
         for graph in graphs:
             constant_fold_graph(graph)
 
-    if propagate:
-        assert graphs is translator.graphs  # XXX for now
-        propagate_all(translator)
-
     if heap2stack:
         assert graphs is translator.graphs  # XXX for now
         malloc_to_stack(translator)

Modified: pypy/dist/pypy/translator/backendopt/test/test_removenoops.py
==============================================================================
--- pypy/dist/pypy/translator/backendopt/test/test_removenoops.py	(original)
+++ pypy/dist/pypy/translator/backendopt/test/test_removenoops.py	Fri Oct 27 12:11:18 2006
@@ -1,9 +1,10 @@
 from pypy.translator.backendopt.removenoops import remove_same_as, \
         remove_unaryops, remove_duplicate_casts, remove_superfluous_keep_alive
 from pypy.translator.backendopt.inline import simple_inline_function
-from pypy.translator.backendopt.test.test_propagate import getops, get_graph, check_graph
 from pypy.translator.translator import TranslationContext, graphof
+from pypy.rpython.memory.gctransform.test.test_transform import getops
 from pypy.translator.test.snippet import simple_method
+from pypy.translator.backendopt.all import backend_optimizations
 from pypy.objspace.flow.model import checkgraph, flatten, Block
 from pypy.rpython.lltypesystem import lltype
 from pypy.rpython.lltypesystem.lloperation import llop
@@ -13,6 +14,30 @@
 import py
 log = py.log.Producer('test_backendoptimization')
 
+def get_graph(fn, signature, inline_threshold=True, all_opts=True):
+    t = TranslationContext()
+    t.buildannotator().build_types(fn, signature)
+    t.buildrtyper().specialize()
+    if all_opts:
+        backend_optimizations(t, inline_threshold=inline_threshold,
+                              constfold=False,
+                              raisingop2direct_call_all=False)
+    graph = graphof(t, fn)
+    if conftest.option.view:
+        t.view()
+    return graph, t
+
+def check_graph(graph, args, expected_result, t):
+    interp = LLInterpreter(t.rtyper)
+    res = interp.eval_graph(graph, args)
+    assert res == expected_result
+
+def check_get_graph(fn, signature, args, expected_result):
+    graph, t = get_graph(fn, signature)
+    check_graph(graph, args, expected_result, t)
+    return graph
+
+
 def test_remove_same_as():
     def nothing(x):
         return x



More information about the Pypy-commit mailing list