[pypy-commit] pypy optresult-unroll: one more down

fijal noreply at buildbot.pypy.org
Fri Aug 7 10:05:22 CEST 2015


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: optresult-unroll
Changeset: r78841:94553b2cdb44
Date: 2015-08-06 22:20 +0200
http://bitbucket.org/pypy/pypy/changeset/94553b2cdb44/

Log:	one more down

diff --git a/rpython/jit/metainterp/optimizeopt/optimizer.py b/rpython/jit/metainterp/optimizeopt/optimizer.py
--- a/rpython/jit/metainterp/optimizeopt/optimizer.py
+++ b/rpython/jit/metainterp/optimizeopt/optimizer.py
@@ -172,9 +172,9 @@
         if self.optimizer.optpure:
             self.optimizer.optpure.pure(opnum, result)
 
-    def pure_from_args(self, opnum, args, result):
+    def pure_from_args(self, opnum, args, result, descr=None):
         if self.optimizer.optpure:
-            self.optimizer.optpure.pure_from_args(opnum, args, result)
+            self.optimizer.optpure.pure_from_args(opnum, args, result, descr)
 
     def has_pure_result(self, opnum, args, descr):
         if self.optimizer.optpure:
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
@@ -199,9 +199,10 @@
         recentops = self.getrecentops(opnum)
         recentops.add(op)
 
-    def pure_from_args(self, opnum, args, op):
+    def pure_from_args(self, opnum, args, op, descr=None):
         newop = ResOperation(opnum,
-                             [self.get_box_replacement(arg) for arg in args])
+                             [self.get_box_replacement(arg) for arg in args],
+                             descr=descr)
         newop.set_forwarded(op)
         self.pure(opnum, newop)
 
diff --git a/rpython/jit/metainterp/optimizeopt/shortpreamble.py b/rpython/jit/metainterp/optimizeopt/shortpreamble.py
--- a/rpython/jit/metainterp/optimizeopt/shortpreamble.py
+++ b/rpython/jit/metainterp/optimizeopt/shortpreamble.py
@@ -23,6 +23,9 @@
     def getarg(self, i):
         return self.op.getarg(i)
 
+    def getdescr(self):
+        return self.op.getdescr()
+
     def __repr__(self):
         return "Preamble(%r)" % (self.op,)
 
diff --git a/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py b/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py
@@ -2320,8 +2320,8 @@
         i5 = int_add(i3, i4)
         #
         setfield_gc(p1, i2, descr=valuedescr)
+        setfield_gc(p1, i4, descr=nextdescr)
         setarrayitem_gc(p3, 0, i5, descr=arraydescr)
-        setfield_gc(p1, i4, descr=nextdescr)
         escape_n()
         jump(p1, i1, i2, p3, i3)
         """
@@ -2332,8 +2332,8 @@
         i5 = int_add(i3, i4)
         #
         setfield_gc(p1, i2, descr=valuedescr)
+        setfield_gc(p1, i4, descr=nextdescr)
         setarrayitem_gc(p3, 0, i5, descr=arraydescr)
-        setfield_gc(p1, i4, descr=nextdescr)
         escape_n()
         jump(p1, i1, i2, p3, i3)
         """


More information about the pypy-commit mailing list