[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