Author: Carl Friedrich Bolz <cfb...@gmx.de> Branch: int-tag-untag-as-operations Changeset: r48498:5dea661f90f6 Date: 2011-10-25 13:53 +0200 http://bitbucket.org/pypy/pypy/changeset/5dea661f90f6/
Log: make all optimizeopt tests pass diff --git a/pypy/jit/backend/llgraph/llimpl.py b/pypy/jit/backend/llgraph/llimpl.py --- a/pypy/jit/backend/llgraph/llimpl.py +++ b/pypy/jit/backend/llgraph/llimpl.py @@ -87,10 +87,13 @@ 'int_is_true' : (('int',), 'bool'), 'int_is_zero' : (('int',), 'bool'), 'int_neg' : (('int',), 'int'), + 'int_tag' : (('int', ), 'int'), + 'int_untag' : (('int', ), 'int'), 'int_invert' : (('int',), 'int'), 'int_add_ovf' : (('int', 'int'), 'int'), 'int_sub_ovf' : (('int', 'int'), 'int'), 'int_mul_ovf' : (('int', 'int'), 'int'), + 'int_tag_ovf' : (('int', ), 'int'), 'uint_add' : (('int', 'int'), 'int'), 'uint_sub' : (('int', 'int'), 'int'), 'uint_mul' : (('int', 'int'), 'int'), 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 @@ -305,20 +305,20 @@ def optimize_INT_TAG(self, op): v1 = self.getvalue(op.getarg(0)) + self.emit_operation(op) r = self.getvalue(op.result) resbound = v1.intbound.mul(2).add(1) r.intbound.intersect(resbound) 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)) self.pure(rop.INT_TAG, [op.result], op.getarg(0)) + self.emit_operation(op) r = self.getvalue(op.result) r.intbound.intersect(v1.intbound.rshift_bound(IntBound(1, 1))) - self.emit_operation(op) def optimize_ARRAYLEN_GC(self, op): self.emit_operation(op) 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 @@ -5124,6 +5124,7 @@ [i0] i1 = int_lt(i0, 1000) guard_true(i1), [] + i2 = int_tag(i0) i3 = int_add(i0, 1) jump(i3) """ _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit