Author: Alex Gaynor <[email protected]>
Branch: inline-virtualref-2
Changeset: r60375:e52b7d1bba2a
Date: 2013-01-23 05:52 -0800
http://bitbucket.org/pypy/pypy/changeset/e52b7d1bba2a/

Log:    Remove the guard_not_forced and guard_no_exceptions, fix test.

diff --git a/rpython/jit/metainterp/optimizeopt/virtualize.py 
b/rpython/jit/metainterp/optimizeopt/virtualize.py
--- a/rpython/jit/metainterp/optimizeopt/virtualize.py
+++ b/rpython/jit/metainterp/optimizeopt/virtualize.py
@@ -3,7 +3,7 @@
 from rpython.jit.codewriter.heaptracker import vtable2descr
 from rpython.jit.metainterp.history import Const, ConstInt, BoxInt
 from rpython.jit.metainterp.optimizeopt import optimizer
-from rpython.jit.metainterp.optimizeopt.optimizer import OptValue
+from rpython.jit.metainterp.optimizeopt.optimizer import OptValue, REMOVED
 from rpython.jit.metainterp.optimizeopt.util import (make_dispatcher_method,
     descrlist_dict, sort_descrs)
 from rpython.jit.metainterp.resoperation import rop, ResOperation
@@ -387,6 +387,16 @@
         self.make_equal_to(box, vvalue)
         return vvalue
 
+    def optimize_GUARD_NO_EXCEPTION(self, op):
+        if self.last_emitted_operation is REMOVED:
+            return
+        self.emit_operation(op)
+
+    def optimize_GUARD_NOT_FORCED(self, op):
+        if self.last_emitted_operation is REMOVED:
+            return
+        self.emit_operation(op)
+
     def optimize_CALL_MAY_FORCE(self, op):
         effectinfo = op.getdescr().get_extra_info()
         oopspecindex = effectinfo.oopspecindex
@@ -456,6 +466,7 @@
                 forcedvalue = vref.getfield(vrefinfo.descr_forced, None)
                 if forcedvalue is not None:
                     self.make_equal_to(op.result, forcedvalue)
+                    self.last_emitted_operation = REMOVED
                     return True
         return False
 
diff --git a/rpython/jit/metainterp/test/test_virtualref.py 
b/rpython/jit/metainterp/test/test_virtualref.py
--- a/rpython/jit/metainterp/test/test_virtualref.py
+++ b/rpython/jit/metainterp/test/test_virtualref.py
@@ -680,7 +680,10 @@
             return n
         res = self.meta_interp(f, [10])
         assert res == 0
-        self.check_resops({'int_sub': 1, 'int_gt': 1, 'jump': 1, 'guard_true': 
1})
+        self.check_resops({
+            'int_sub': 2, 'int_gt': 2, 'jump': 1, 'guard_true': 2,
+            'force_token': 2, 'setfield_gc': 1
+        })
 
 
 class TestLLtype(VRefTests, LLJitMixin):
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to