[pypy-commit] pypy default: Redo d7e235d0e787 with the missing get_box_replacement() calls
arigo
pypy.commits at gmail.com
Thu Dec 6 02:23:23 EST 2018
Author: Armin Rigo <arigo at tunes.org>
Branch:
Changeset: r95428:258a0be8f360
Date: 2018-12-06 09:05 +0200
http://bitbucket.org/pypy/pypy/changeset/258a0be8f360/
Log: Redo d7e235d0e787 with the missing get_box_replacement() calls
diff --git a/rpython/jit/metainterp/optimizeopt/intbounds.py b/rpython/jit/metainterp/optimizeopt/intbounds.py
--- a/rpython/jit/metainterp/optimizeopt/intbounds.py
+++ b/rpython/jit/metainterp/optimizeopt/intbounds.py
@@ -128,10 +128,10 @@
# if both are constant, the pure optimization will deal with it
if v2.is_constant() and not v1.is_constant():
arg1 = self.optimizer.as_operation(arg1)
- if 0: # arg1 is not None: investigate, bug in test_loop_unroll.py
+ if arg1 is not None:
if arg1.getopnum() == rop.INT_ADD:
- prod_arg1 = arg1.getarg(0)
- prod_arg2 = arg1.getarg(1)
+ prod_arg1 = self.get_box_replacement(arg1.getarg(0))
+ prod_arg2 = self.get_box_replacement(arg1.getarg(1))
prod_v1 = self.getintbound(prod_arg1)
prod_v2 = self.getintbound(prod_arg2)
diff --git a/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py b/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
@@ -4017,7 +4017,6 @@
strsetitem(p3, i2, i0)
i5 = int_add(i2, 1)
strsetitem(p3, i5, i1)
- ifoo = int_add(i5, 1)
jump(i1, i0, p3)
"""
self.optimize_strunicode_loop(ops, expected)
diff --git a/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py b/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py
@@ -1300,7 +1300,7 @@
preamble = """
[i0, p1, p3]
i28 = int_add(i0, 1)
- i29 = int_add(i28, 1)
+ i29 = int_add(i0, 2)
p30 = new_with_vtable(descr=nodesize)
setfield_gc(p30, i28, descr=valuedescr)
setfield_gc(p3, p30, descr=nextdescr)
@@ -1310,7 +1310,7 @@
expected = """
[i0, p1, p3]
i28 = int_add(i0, 1)
- i29 = int_add(i28, 1)
+ i29 = int_add(i0, 2)
p30 = new_with_vtable(descr=nodesize)
setfield_gc(p30, i28, descr=valuedescr)
setfield_gc(p3, p30, descr=nextdescr)
@@ -6392,7 +6392,6 @@
strsetitem(p3, i2, i0)
i5 = int_add(i2, 1)
strsetitem(p3, i5, i1)
- i6 = int_add(i5, 1) # will be killed by the backend
jump(i1, i0, p3)
"""
self.optimize_strunicode_loop(ops, expected, expected)
More information about the pypy-commit
mailing list