Author: Maciej Fijalkowski <[email protected]>
Branch: optresult
Changeset: r76186:f087cd1a3f06
Date: 2015-02-27 22:34 +0200
http://bitbucket.org/pypy/pypy/changeset/f087cd1a3f06/
Log: small progress
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
@@ -63,7 +63,8 @@
def _optimize_guard_true_false_value(self, op):
self.emit_operation(op)
- self.propagate_bounds_backward(op.getarg(0))
+ if op.getarg(0).type == 'i':
+ self.propagate_bounds_backward(op.getarg(0))
optimize_GUARD_TRUE = _optimize_guard_true_false_value
optimize_GUARD_FALSE = _optimize_guard_true_false_value
diff --git a/rpython/jit/metainterp/optimizeopt/optimizer.py
b/rpython/jit/metainterp/optimizeopt/optimizer.py
--- a/rpython/jit/metainterp/optimizeopt/optimizer.py
+++ b/rpython/jit/metainterp/optimizeopt/optimizer.py
@@ -546,10 +546,11 @@
return newop
def make_constant(self, box, constbox):
- assert isinstance(constbox, ConstInt)
+ assert isinstance(constbox, Const)
box = self.get_box_replacement(box)
if not we_are_translated(): # safety-check
- if box.get_forwarded() is not None:
+ if (box.get_forwarded() is not None and
+ isinstance(constbox, ConstInt)):
assert box.get_forwarded().contains(constbox.getint())
if box.is_constant():
return
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
@@ -317,14 +317,15 @@
ops = """
[p1]
guard_value(p1, ConstPtr(myptr)) []
+ guard_value(p1, ConstPtr(myptr)) []
jump(ConstPtr(myptr))
"""
expected = """
- []
- jump()
- """
- py.test.skip("XXX")
- self.optimize_loop(ops, 'Constant(myptr)', expected)
+ [p1]
+ guard_value(p1, ConstPtr(myptr)) []
+ jump(ConstPtr(myptr))
+ """
+ self.optimize_loop(ops, expected)
def test_ooisnull_oononnull_1(self):
ops = """
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit