[pypy-commit] pypy stringbuilder2-perf: Transplant 7a6bc2abea20
arigo
noreply at buildbot.pypy.org
Sun Jun 15 13:11:13 CEST 2014
Author: Armin Rigo <arigo at tunes.org>
Branch: stringbuilder2-perf
Changeset: r72058:99f12ac1639b
Date: 2014-06-15 12:58 +0200
http://bitbucket.org/pypy/pypy/changeset/99f12ac1639b/
Log: Transplant 7a6bc2abea20
diff --git a/rpython/jit/metainterp/optimizeopt/rewrite.py b/rpython/jit/metainterp/optimizeopt/rewrite.py
--- a/rpython/jit/metainterp/optimizeopt/rewrite.py
+++ b/rpython/jit/metainterp/optimizeopt/rewrite.py
@@ -394,6 +394,7 @@
val = self.getvalue(arg)
if val.is_constant():
if val.box.same_constant(CONST_0):
+ self.last_emitted_operation = REMOVED
return
op = op.copy_and_change(rop.CALL, args=op.getarglist()[1:])
self.emit_operation(op)
diff --git a/rpython/jit/metainterp/test/test_call.py b/rpython/jit/metainterp/test/test_call.py
--- a/rpython/jit/metainterp/test/test_call.py
+++ b/rpython/jit/metainterp/test/test_call.py
@@ -56,3 +56,18 @@
assert self.interp_operations(main, [10]) == 1
assert self.interp_operations(main, [5]) == 0
+ def test_cond_call_disappears(self):
+ driver = jit.JitDriver(greens = [], reds = ['n'])
+
+ def f(n):
+ raise ValueError
+
+ def main(n):
+ while n > 0:
+ driver.jit_merge_point(n=n)
+ jit.conditional_call(False, f, 10)
+ n -= 1
+ return 42
+
+ assert self.meta_interp(main, [10]) == 42
+ self.check_resops(guard_no_exception=0)
More information about the pypy-commit
mailing list