Author: Maciej Fijalkowski <fij...@gmail.com>
Branch: optresult-unroll
Changeset: r79293:93678a196e93
Date: 2015-08-30 12:12 +0200
http://bitbucket.org/pypy/pypy/changeset/93678a196e93/

Log:    fix wrong optimization

diff --git a/rpython/jit/metainterp/optimizeopt/info.py 
b/rpython/jit/metainterp/optimizeopt/info.py
--- a/rpython/jit/metainterp/optimizeopt/info.py
+++ b/rpython/jit/metainterp/optimizeopt/info.py
@@ -186,8 +186,7 @@
                 subbox = optforce.force_box(fld)
                 setfieldop = ResOperation(rop.SETFIELD_GC, [op, subbox],
                                           descr=flddescr)
-                if not flddescr.is_always_pure():
-                    self._fields[i] = None
+                self._fields[i] = None
                 optforce.emit_operation(setfieldop)
 
     def _force_at_the_end_of_preamble(self, op, optforce, rec):
@@ -453,8 +452,7 @@
             setop = ResOperation(rop.SETARRAYITEM_GC,
                                  [op, ConstInt(i), subbox],
                                   descr=arraydescr)
-            if not self.arraydescr.is_always_pure():
-                self._items[i] = None
+            self._items[i] = None
             optforce.emit_operation(setop)
         optforce.pure_from_args(rop.ARRAYLEN_GC, [op], 
ConstInt(len(self._items)))
 
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to