Author: Armin Rigo <[email protected]>
Branch: conditional_call_value_4
Changeset: r88578:71709aa3ea99
Date: 2016-11-23 12:15 +0100
http://bitbucket.org/pypy/pypy/changeset/71709aa3ea99/
Log: tweaks
diff --git a/rpython/jit/metainterp/optimizeopt/pure.py
b/rpython/jit/metainterp/optimizeopt/pure.py
--- a/rpython/jit/metainterp/optimizeopt/pure.py
+++ b/rpython/jit/metainterp/optimizeopt/pure.py
@@ -168,11 +168,11 @@
# CALL_PURE.
for pos in self.call_pure_positions:
old_op = self.optimizer._newoperations[pos]
- if self.optimize_call_pure_old(op, old_op):
+ if self.optimize_call_pure_old(op, old_op, start_index):
return
if self.extra_call_pure:
for i, old_op in enumerate(self.extra_call_pure):
- if self.optimize_call_pure_old(op, old_op):
+ if self.optimize_call_pure_old(op, old_op, start_index):
if isinstance(old_op, PreambleOp):
old_op = self.optimizer.force_op_from_preamble(old_op)
self.extra_call_pure[i] = old_op
@@ -196,11 +196,12 @@
return self.optimize_call_pure(op, start_index=1)
optimize_COND_CALL_VALUE_R = optimize_COND_CALL_VALUE_I
- def optimize_call_pure_old(self, op, old_op):
+ def optimize_call_pure_old(self, op, old_op, start_index):
if (op.numargs() != old_op.numargs() or
op.getdescr() is not old_op.getdescr()):
return False
- for i, box in enumerate(old_op.getarglist()):
+ for i in range(start_index, old_op.numargs()):
+ box = old_op.getarg(i)
if not self.get_box_replacement(op.getarg(i)).same_box(box):
break
else:
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
@@ -597,14 +597,7 @@
return self.emit(op)
def optimize_COND_CALL_VALUE_I(self, op):
- # this removes a COND_CALL_VALUE with all constant arguments
- # (ignoring the 'value' in arg0)
- result = self._can_optimize_call_pure(op, start_index=1)
- if result is not None:
- self.make_constant(op, result)
- self.last_emitted_operation = REMOVED
- return
- # otherwise, look if we know the nullness of the first argument
+ # look if we know the nullness of the first argument
info = self.getnullness(op.getarg(0))
if info == INFO_NONNULL:
self.make_equal_to(op, op.getarg(0))
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit