[pypy-commit] pypy recent-pure-ops: give up and call get_op_replacement will be improved on optresult
fijal
noreply at buildbot.pypy.org
Mon Mar 2 18:30:21 CET 2015
Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: recent-pure-ops
Changeset: r76222:0960b8c14703
Date: 2015-03-02 19:29 +0200
http://bitbucket.org/pypy/pypy/changeset/0960b8c14703/
Log: give up and call get_op_replacement will be improved on optresult
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
@@ -70,6 +70,7 @@
else:
nextop = None
+ save = False
if canfold:
for i in range(op.numargs()):
if self.get_constant_box(op.getarg(i)) is None:
@@ -84,20 +85,21 @@
# did we do the exact same operation already?
recentops = self.getrecentops(op.getopnum())
+ save = True
oldop = recentops.lookup(self.optimizer, op)
if oldop is not None:
- self.optimizer.make_equal_to(op.result, oldop.result, True)
+ self.optimizer.make_equal_to(op.result,
+ self.getvalue(oldop.result), True)
return
# otherwise, the operation remains
self.emit_operation(op)
if op.returns_bool_result():
self.optimizer.bool_boxes[self.getvalue(op.result)] = None
- if canfold:
- realop = self.optimizer.getlastop()
- if realop is not None:
- recentops = self.getrecentops(realop.getopnum())
- recentops.add(realop)
+ if save:
+ realop = self.optimizer.get_op_replacement(op)
+ recentops = self.getrecentops(realop.getopnum())
+ recentops.add(realop)
if nextop:
self.emit_operation(nextop)
More information about the pypy-commit
mailing list