[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