[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