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

cfbolz at codespeak.net cfbolz at codespeak.net
Thu Mar 16 12:52:26 CET 2006


Author: cfbolz
Date: Thu Mar 16 12:52:24 2006
New Revision: 24455

Modified:
   pypy/dist/pypy/translator/backendopt/inline.py
   pypy/dist/pypy/translator/backendopt/test/test_inline.py
Log:
off by one error


Modified: pypy/dist/pypy/translator/backendopt/inline.py
==============================================================================
--- pypy/dist/pypy/translator/backendopt/inline.py	(original)
+++ pypy/dist/pypy/translator/backendopt/inline.py	Thu Mar 16 12:52:24 2006
@@ -69,8 +69,8 @@
         return False
 
 def inline_function(translator, inline_func, graph):
-    for count, (subgraph, block, index_operation) in enumerate(
-        iter_first_callsites(graph, inline_func)):
+    count = 0
+    for subgraph, block, index_operation in iter_first_callsites(graph, inline_func):
         if contains_call(subgraph, subgraph):
             raise CannotInline("inlining a recursive function")
         operation = block.operations[index_operation]

Modified: pypy/dist/pypy/translator/backendopt/test/test_inline.py
==============================================================================
--- pypy/dist/pypy/translator/backendopt/test/test_inline.py	(original)
+++ pypy/dist/pypy/translator/backendopt/test/test_inline.py	Thu Mar 16 12:52:24 2006
@@ -58,6 +58,8 @@
 
 def check_auto_inlining(func, sig, threshold=None):
     t = translate(func, sig)
+    if option.view:
+        t.view()
     # inline!
     sanity_check(t)    # also check before inlining (so we don't blame it)
     if threshold is None:
@@ -65,6 +67,8 @@
     else:
         auto_inlining(t, threshold=threshold)
     sanity_check(t)
+    if option.view:
+        t.view()
     interp = LLInterpreter(t.rtyper)
     def eval_func(args):
         return interp.eval_graph(graphof(t, func), args)
@@ -85,6 +89,14 @@
     result = eval_func([2, 12])
     assert result == f(2, 12)
 
+def test_nothing_to_inline():
+    def f():
+        return 1
+    def g():
+        return 2
+    eval_func = check_inline(g, f, [])
+    assert eval_func([]) == 1
+
 def test_inline_big():
     def f(x):
         result = []



More information about the Pypy-commit mailing list