Author: Carl Friedrich Bolz <[email protected]>
Branch: int-tag-untag-as-operations
Changeset: r48368:766299f6042c
Date: 2011-10-24 09:01 +0200
http://bitbucket.org/pypy/pypy/changeset/766299f6042c/
Log: rename the operation to int_tag_ovf
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
@@ -692,7 +692,7 @@
if not flag:
raise GuardFailed
- def op_int_tag(self, _, x):
+ def op_int_tag_ovf(self, _, x):
try:
z = ovfcheck(x << 1) + 1
except OverflowError:
diff --git a/pypy/jit/codewriter/jtransform.py
b/pypy/jit/codewriter/jtransform.py
--- a/pypy/jit/codewriter/jtransform.py
+++ b/pypy/jit/codewriter/jtransform.py
@@ -269,7 +269,7 @@
op1 = SpaceOperation('-live-', [], None)
return [op, op1]
- def rewrite_op_int_tag(self, op):
+ def rewrite_op_int_tag_ovf(self, op):
op1 = SpaceOperation('-live-', [], None)
return [op, op1]
diff --git a/pypy/jit/metainterp/blackhole.py b/pypy/jit/metainterp/blackhole.py
--- a/pypy/jit/metainterp/blackhole.py
+++ b/pypy/jit/metainterp/blackhole.py
@@ -451,7 +451,7 @@
def bhimpl_int_untag(a):
return a >> 1
@arguments("i", returns="i")
- def bhimpl_int_tag(a):
+ def bhimpl_int_tag_ovf(a):
return ovfcheck(a << 1) + 1
diff --git a/pypy/jit/metainterp/executor.py b/pypy/jit/metainterp/executor.py
--- a/pypy/jit/metainterp/executor.py
+++ b/pypy/jit/metainterp/executor.py
@@ -204,7 +204,7 @@
z = 0
return BoxInt(z)
-def do_int_tag(cpu, metainterp, box1):
+def do_int_tag_ovf(cpu, metainterp, box1):
# the overflow operations can be called without a metainterp, if an
# overflow cannot occur
a = box1.getint()
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
@@ -285,7 +285,7 @@
else:
self.emit_operation(op)
- def optimize_INT_TAG(self, op):
+ def optimize_INT_TAG_OVF(self, op):
self.emit_operation(op) # XXX for now
v1 = self.getvalue(op.getarg(0))
r = self.getvalue(op.result)
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
@@ -5077,7 +5077,7 @@
def test_int_tag_untag_reverses(self):
ops = """
[i0]
- i1 = int_tag(i0)
+ i1 = int_tag_ovf(i0)
guard_no_overflow() []
i2 = int_untag(i1)
i3 = int_add(i2, 1)
@@ -5085,7 +5085,7 @@
"""
expected = """
[i0]
- i1 = int_tag(i0)
+ i1 = int_tag_ovf(i0)
guard_no_overflow() []
i2 = int_add(i0, 1)
jump(i2)
@@ -5094,7 +5094,7 @@
ops = """
[i0]
i1 = int_untag(i0)
- i2 = int_tag(i1)
+ i2 = int_tag_ovf(i1)
guard_no_overflow() []
i3 = int_untag(i2)
i4 = int_add(i3, 1)
@@ -5111,7 +5111,7 @@
def test_int_tag_remove_overflow_checking(self):
ops = """
[i0]
- i2 = int_tag(i0)
+ i2 = int_tag_ovf(i0)
guard_no_overflow() []
i3 = int_untag(i2)
i4 = int_add_ovf(i3, 1)
@@ -5120,14 +5120,14 @@
"""
expected = """
[i0]
- i2 = int_tag(i0)
+ i2 = int_tag_ovf(i0)
guard_no_overflow() []
i3 = int_add(i0, 1)
jump(i3)
"""
preamble = """
[i0]
- i2 = int_tag(i0)
+ i2 = int_tag_ovf(i0)
guard_no_overflow() []
i3 = int_add(i0, 1)
jump(i3)
diff --git a/pypy/jit/metainterp/pyjitpl.py b/pypy/jit/metainterp/pyjitpl.py
--- a/pypy/jit/metainterp/pyjitpl.py
+++ b/pypy/jit/metainterp/pyjitpl.py
@@ -231,9 +231,9 @@
''' % (_opimpl, _opimpl.upper())).compile()
@arguments("box")
- def opimpl_int_tag(self, b1):
+ def opimpl_int_tag_ovf(self, b1):
self.metainterp.clear_exception()
- resbox = self.execute(rop.INT_TAG, b1)
+ resbox = self.execute(rop.INT_TAG_OVF, b1)
self.make_result_of_lastop(resbox)
if not isinstance(resbox, Const):
self.metainterp.handle_possible_overflow_error()
diff --git a/pypy/jit/metainterp/resoperation.py
b/pypy/jit/metainterp/resoperation.py
--- a/pypy/jit/metainterp/resoperation.py
+++ b/pypy/jit/metainterp/resoperation.py
@@ -505,7 +505,7 @@
'INT_ADD_OVF/2',
'INT_SUB_OVF/2',
'INT_MUL_OVF/2',
- 'INT_TAG/1',
+ 'INT_TAG_OVF/1',
'_OVF_LAST', # ----- end of is_ovf operations -----
'_LAST', # for the backend to add more internal operations
]
diff --git a/pypy/rlib/rerased.py b/pypy/rlib/rerased.py
--- a/pypy/rlib/rerased.py
+++ b/pypy/rlib/rerased.py
@@ -220,7 +220,7 @@
[v_value] = hop.inputargs(lltype.Signed)
c_one = hop.inputconst(lltype.Signed, 1)
hop.exception_is_here()
- v2 = hop.genop('int_tag', [v_value],
+ v2 = hop.genop('int_tag_ovf', [v_value],
resulttype = lltype.Signed)
v_instance = hop.genop('cast_int_to_ptr', [v2],
resulttype=self.lowleveltype)
diff --git a/pypy/rpython/llinterp.py b/pypy/rpython/llinterp.py
--- a/pypy/rpython/llinterp.py
+++ b/pypy/rpython/llinterp.py
@@ -1095,7 +1095,7 @@
assert y >= 0
return self.op_int_add_ovf(x, y)
- def op_int_tag(self, x):
+ def op_int_tag_ovf(self, x):
try:
return ovfcheck(x + x + 1)
except OverflowError:
diff --git a/pypy/rpython/lltypesystem/lloperation.py
b/pypy/rpython/lltypesystem/lloperation.py
--- a/pypy/rpython/lltypesystem/lloperation.py
+++ b/pypy/rpython/lltypesystem/lloperation.py
@@ -207,7 +207,7 @@
'int_abs': LLOp(canfold=True),
'int_abs_ovf': LLOp(canraise=(OverflowError,), tryfold=True),
'int_invert': LLOp(canfold=True),
- 'int_tag': LLOp(canraise=(OverflowError, ), tryfold=True),
+ 'int_tag_ovf': LLOp(canraise=(OverflowError, ), tryfold=True),
'int_untag': LLOp(canfold=True),
'int_add': LLOp(canfold=True),
diff --git a/pypy/translator/c/src/int.h b/pypy/translator/c/src/int.h
--- a/pypy/translator/c/src/int.h
+++ b/pypy/translator/c/src/int.h
@@ -19,11 +19,10 @@
if ((x) == LONG_MIN) FAIL_OVF("integer absolute"); \
OP_INT_ABS(x,r)
-#define OP_INT_TAG(x, r) \
+#define OP_INT_TAG_OVF(x, r) \
r = (long)((unsigned long)x << 1); \
if ((r ^ x) < 0) FAIL_OVF("integer tagging"); \
r = r + 1
-
#define OP_INT_UNTAG(x, r) \
r = x >> 1
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit