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