[pypy-commit] pypy optresult: oops

fijal noreply at buildbot.pypy.org
Fri Jun 5 14:16:45 CEST 2015


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: optresult
Changeset: r77907:7f75733a01dd
Date: 2015-06-05 14:16 +0200
http://bitbucket.org/pypy/pypy/changeset/7f75733a01dd/

Log:	oops

diff --git a/rpython/jit/metainterp/resoperation.py b/rpython/jit/metainterp/resoperation.py
--- a/rpython/jit/metainterp/resoperation.py
+++ b/rpython/jit/metainterp/resoperation.py
@@ -79,7 +79,7 @@
 
     def get_replacement(self):
         if self._forwarded:
-            return self._forwarded
+            return self._forwarded.get_replacement()
         return self
 
     def set_forwarded(self, forwarded_to):
@@ -479,9 +479,7 @@
         assert len(args) == 0
 
     def get_replacement_for_rewrite(self):
-        if self._forwarded:
-            return self._forwarded
-        return self
+        return self.get_replacement()
 
     def getarglist(self):
         return []
@@ -513,6 +511,7 @@
             if isinstance(self, ResOpWithDescr):
                 op.setdescr(self.getdescr())
             op._arg0 = arg0
+            self.set_forwarded(op)
             return op
         return self
 
@@ -574,6 +573,7 @@
                 op.setdescr(self.getdescr())
             op._arg0 = arg0
             op._arg1 = arg1
+            self.set_forwarded(op)
             return op
         return self
 
@@ -621,6 +621,7 @@
             op._arg0 = arg0
             op._arg1 = arg1
             op._arg2 = arg2
+            self.set_forwarded(op)
             return op
         return self
 
@@ -654,6 +655,7 @@
         else:
             return self
         op = self.__class__()
+        self.set_forwarded(op)
         op._args = [arg.get_replacement() for arg in self._args]
         if isinstance(self, ResOpWithDescr):
             op.setdescr(self.getdescr())


More information about the pypy-commit mailing list