Author: Maciej Fijalkowski <[email protected]>
Branch: optresult-unroll
Changeset: r78973:495132434c50
Date: 2015-08-13 17:08 +0200
http://bitbucket.org/pypy/pypy/changeset/495132434c50/

Log:    (fijal, arigo) fix arrays too

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
@@ -162,10 +162,10 @@
                 setfieldop = ResOperation(rop.SETFIELD_GC, [op, subbox],
                                           descr=flddescr)
                 self._fields[i] = None
-                optforce.optheap.propagate_forward(setfieldop)
-                #optforce._emit_operation(setfieldop)
-                #if optforce.optheap is not None:
-                #    optforce.optheap.register_dirty_field(flddescr, op, self)
+                if optforce.optheap is not None:
+                    optforce.optheap.propagate_forward(setfieldop)
+                else:
+                    optforce.emit_operation(setfieldop)
 
     def _visitor_walk_recursive(self, instbox, visitor, optimizer):
         lst = self.vdescr.get_all_fielddescrs()
@@ -360,10 +360,11 @@
                 setop = ResOperation(rop.SETARRAYITEM_GC,
                                      [op, ConstInt(i), subbox],
                                       descr=arraydescr)
-                optforce._emit_operation(setop)
+                self._items[i] = None
                 if optforce.optheap is not None:
-                    optforce.optheap.register_dirty_array_field(op,
-                        arraydescr, i, self)
+                    optforce.optheap.propagate_forward(setop)
+                else:
+                    optforce.emit_operation(setop)
         optforce.pure_from_args(rop.ARRAYLEN_GC, [op], 
ConstInt(len(self._items)))
 
     def setitem(self, index, struct_op, op, cf=None, optheap=None):
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to