[pypy-svn] pypy jit-unroll-loops: Allow failargs to be None

hakanardo commits-noreply at bitbucket.org
Sun Dec 19 11:54:55 CET 2010


Author: Hakan Ardo <hakan at debian.org>
Branch: jit-unroll-loops
Changeset: r40124:2e8d4e44bae1
Date: 2010-12-19 11:54 +0100
http://bitbucket.org/pypy/pypy/changeset/2e8d4e44bae1/

Log:	Allow failargs to be None

diff --git a/pypy/jit/metainterp/optimizeopt/unroll.py b/pypy/jit/metainterp/optimizeopt/unroll.py
--- a/pypy/jit/metainterp/optimizeopt/unroll.py
+++ b/pypy/jit/metainterp/optimizeopt/unroll.py
@@ -43,6 +43,8 @@
         return newop
     
     def inline_arg(self, arg):
+        if arg is None:
+            return None
         if isinstance(arg, Const):
             return arg
         return self.argmap[arg]
@@ -264,7 +266,9 @@
                 newop = self.inliner.inline_op(op, True)
             except KeyError:
                 debug_print("create_short_preamble failed due to",
-                            "new boxes created during optimization")
+                            "new boxes created during optimization.",
+                            "op:", op.getopnum(),
+                            "at position: ", preamble_i)
                 return None
                 
             if self.sameop(newop, loop_ops[loop_i]) \

diff --git a/pypy/jit/metainterp/test/test_basic.py b/pypy/jit/metainterp/test/test_basic.py
--- a/pypy/jit/metainterp/test/test_basic.py
+++ b/pypy/jit/metainterp/test/test_basic.py
@@ -1880,8 +1880,8 @@
             assert c1.val == c2.val
             assert d1.val == d2.val
             return a1.val + b1.val + c1.val + d1.val
-        res = self.meta_interp(g, [6, 14])
-        assert res == g(6, 14)
+        res = self.meta_interp(g, [3, 14])
+        assert res == g(3, 14)
 
     def test_specialied_bridge(self):
         myjitdriver = JitDriver(greens = [], reds = ['y', 'x', 'res'])

diff --git a/pypy/translator/tool/make_dot.py b/pypy/translator/tool/make_dot.py
--- a/pypy/translator/tool/make_dot.py
+++ b/pypy/translator/tool/make_dot.py
@@ -49,12 +49,17 @@
                   color="black", 
                   dir="forward",
                   weight="5",
+                  ports=None,
                   ):
         d = locals()
         attrs = [('%s="%s"' % (x, d[x].replace('"', '\\"').replace('\n', '\\n')))
                  for x in ['label', 'style', 'color', 'dir', 'weight']]
         self.emit('edge [%s];' % ", ".join(attrs))
-        self.emit('%s -> %s' % (safename(name1), safename(name2)))
+        if ports:
+            self.emit('%s:%s -> %s:%s' % (safename(name1), ports[0],
+                                          safename(name2), ports[1]))
+        else:
+            self.emit('%s -> %s' % (safename(name1), safename(name2)))
 
     def emit_node(self, name, 
                   shape="diamond", 

diff --git a/pypy/jit/tool/traceviewer.py b/pypy/jit/tool/traceviewer.py
--- a/pypy/jit/tool/traceviewer.py
+++ b/pypy/jit/tool/traceviewer.py
@@ -74,7 +74,7 @@
 
     def generate(self, dotgen, counts):
         val = counts.get(self.key, 0)
-        if val > counts.threshold:
+        if False: #val > counts.threshold:
             fillcolor = get_gradient_color(self.ratio)
         else:
             fillcolor = "white"


More information about the Pypy-commit mailing list