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

Reply via email to