Author: Maciej Fijalkowski <[email protected]>
Branch: optresult-unroll
Changeset: r79400:66aaa50b4f63
Date: 2015-09-03 20:14 +0200
http://bitbucket.org/pypy/pypy/changeset/66aaa50b4f63/

Log:    some passing tests and one failing, so we don't forget

diff --git a/rpython/jit/metainterp/compile.py 
b/rpython/jit/metainterp/compile.py
--- a/rpython/jit/metainterp/compile.py
+++ b/rpython/jit/metainterp/compile.py
@@ -963,6 +963,9 @@
         resumedescr = ResumeGuardOverflowDescr()
     elif opnum == rop.GUARD_NO_OVERFLOW:
         resumedescr = ResumeGuardNoOverflowDescr()
+    elif opnum in (rop.GUARD_IS_OBJECT, rop.GUARD_SUBCLASS, rop.GUARD_GC_TYPE):
+        # note - this only happens in tests
+        resumedescr = ResumeAtPositionDescr()
     else:
         assert False
     return resumedescr
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
@@ -5833,5 +5833,47 @@
         """
         self.optimize_loop(ops, expected)
 
+    def test_remove_guard_is_object_2(self):
+        ops = """
+        [p0]
+        i1 = getfield_gc_i(p0, descr=valuedescr)
+        guard_is_object(p0) []
+        finish(i1)
+        """
+        expected = """
+        [p0]
+        i1 = getfield_gc_i(p0, descr=valuedescr)
+        finish(i1)
+        """
+        self.optimize_loop(ops, expected)
+
+    def test_remove_guard_subclass_1(self):
+        ops = """
+        [p0]
+        i1 = getfield_gc_i(p0, descr=valuedescr)
+        guard_subclass(p0, ConstClass(node_vtable)) []
+        finish(i1)
+        """
+        expected = """
+        [p0]
+        i1 = getfield_gc_i(p0, descr=valuedescr)
+        finish(i1)
+        """
+        self.optimize_loop(ops, expected)
+
+    def test_remove_guard_subclass_2(self):
+        ops = """
+        [p0]
+        p1 = getfield_gc_i(p0, descr=otherdescr)
+        guard_subclass(p0, ConstClass(node_vtable)) []
+        finish(p1)
+        """
+        expected = """
+        [p0]
+        p1 = getfield_gc_i(p0, descr=otherdescr)
+        finish(p1)
+        """
+        self.optimize_loop(ops, expected)        
+
 class TestLLtype(BaseTestOptimizeBasic, LLtypeMixin):
     pass
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to