[pypy-commit] pypy int-tag-untag-as-operations: woops

cfbolz noreply at buildbot.pypy.org
Tue Oct 25 12:27:44 CEST 2011


Author: Carl Friedrich Bolz <cfbolz at gmx.de>
Branch: int-tag-untag-as-operations
Changeset: r48428:0ed5fb78f4be
Date: 2011-10-25 12:27 +0200
http://bitbucket.org/pypy/pypy/changeset/0ed5fb78f4be/

Log:	woops

diff --git a/pypy/jit/metainterp/optimizeopt/intbounds.py b/pypy/jit/metainterp/optimizeopt/intbounds.py
--- a/pypy/jit/metainterp/optimizeopt/intbounds.py
+++ b/pypy/jit/metainterp/optimizeopt/intbounds.py
@@ -311,6 +311,7 @@
         maxbounds = IntBound((-sys.maxint-1) >> 1, sys.maxint >> 1)
         v1.intbound.intersect(maxbounds)
         self.pure(rop.INT_UNTAG, [op.result], op.getarg(0))
+        self.emit_operation(op)
 
     def optimize_INT_UNTAG(self, op):
         v1 = self.getvalue(op.getarg(0))
diff --git a/pypy/jit/metainterp/optimizeopt/test/test_optimizeopt.py b/pypy/jit/metainterp/optimizeopt/test/test_optimizeopt.py
--- a/pypy/jit/metainterp/optimizeopt/test/test_optimizeopt.py
+++ b/pypy/jit/metainterp/optimizeopt/test/test_optimizeopt.py
@@ -5138,6 +5138,29 @@
         """
         self.optimize_loop(ops, expected, preamble)
 
+    def test_int_tag_remove_overflow_checking2(self):
+        ops = """
+        [i0]
+        i1 = int_lt(i0, 1000)
+        guard_true(i1), []
+        i2 = int_gt(i0, 0)
+        guard_true(i2), []
+        i3 = int_tag_ovf(i0)
+        guard_no_overflow() []
+        i4 = escape(i3)
+        jump(i4)
+        """
+        expected = """
+        [i0]
+        i1 = int_lt(i0, 1000)
+        guard_true(i1), []
+        i2 = int_gt(i0, 0)
+        guard_true(i2), []
+        i3 = int_tag(i0)
+        i4 = escape(i3)
+        jump(i4)
+        """
+        self.optimize_loop(ops, expected)
 
     def test_mul_ovf(self):
         ops = """


More information about the pypy-commit mailing list