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

Log:    (fijal, arigo) fix some more tests

diff --git a/rpython/jit/metainterp/optimizeopt/heap.py 
b/rpython/jit/metainterp/optimizeopt/heap.py
--- a/rpython/jit/metainterp/optimizeopt/heap.py
+++ b/rpython/jit/metainterp/optimizeopt/heap.py
@@ -490,7 +490,10 @@
 
     def force_lazy_setfields_and_arrayitems_for_guard(self):
         pendingfields = []
-        for descr, cf in self.cached_fields.iteritems():
+        items = self.cached_fields.items()
+        if not we_are_translated():
+            items.sort(key=str, reverse=True)
+        for descr, cf in items:
             op = cf._lazy_setfield
             if op is None:
                 continue
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
@@ -1,4 +1,5 @@
 
+from collections import OrderedDict
 from rpython.jit.metainterp.resoperation import ResOperation, OpHelpers,\
      rop, AbstractResOp, AbstractInputArg
 from rpython.jit.metainterp.history import Const, make_hashable_int,\
@@ -206,7 +207,7 @@
     def create_short_boxes(self, optimizer, inputargs, label_args):
         # all the potential operations that can be produced, subclasses
         # of AbstractShortOp
-        self.potential_ops = {}
+        self.potential_ops = OrderedDict()
         self.produced_short_boxes = {}
         # a way to produce const boxes, e.g. setfield_gc(p0, Const).
         # We need to remember those, but they don't produce any new boxes
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
@@ -7393,8 +7393,8 @@
         """
         expected = """
         [p0, p1, p3, ii, ii2, i1, i2]
-        setfield_gc(p3, i1, descr=adescr)
-        setfield_gc(p3, i2, descr=abisdescr)
+        setfield_gc(p3, i1, descr=abisdescr)
+        setfield_gc(p3, i2, descr=adescr)
         i5 = int_gt(ii, 42)
         guard_true(i5) []
         jump(p0, p1, p3, ii2, ii, i1, i2)
@@ -7435,7 +7435,7 @@
         guard_nonnull_class(p1, ConstClass(node_vtable)) []
         p2 = getfield_gc_r(p1, descr=nextdescr)
         guard_nonnull_class(p2, ConstClass(node_vtable)) []
-        jump(p0)
+        jump(p1)
         """
         self.optimize_loop(ops, expected, expected_short=short)
 
diff --git a/rpython/jit/metainterp/optimizeopt/unroll.py 
b/rpython/jit/metainterp/optimizeopt/unroll.py
--- a/rpython/jit/metainterp/optimizeopt/unroll.py
+++ b/rpython/jit/metainterp/optimizeopt/unroll.py
@@ -1,21 +1,13 @@
-import sys
 
-from rpython.jit.metainterp.history import TargetToken, JitCellToken, Const
+from rpython.jit.metainterp.history import Const
 from rpython.jit.metainterp.optimizeopt.shortpreamble import ShortBoxes,\
      ShortPreambleBuilder, PreambleOp
-from rpython.jit.metainterp.optimize import InvalidLoop
 from rpython.jit.metainterp.optimizeopt import info, intutils
 from rpython.jit.metainterp.optimizeopt.optimizer import Optimizer,\
      Optimization, LoopInfo, MININT, MAXINT
-from rpython.jit.metainterp.optimizeopt.virtualstate import 
(VirtualStateConstructor,
-        BadVirtualState, VirtualStatesCantMatch)
-from rpython.jit.metainterp.resoperation import rop, ResOperation,\
-     OpHelpers, AbstractInputArg, GuardResOp, AbstractResOp
-from rpython.jit.metainterp import compile
-from rpython.rlib.debug import debug_print, debug_start, debug_stop
-
-
-
+from rpython.jit.metainterp.optimizeopt.virtualstate import (
+    VirtualStateConstructor)
+from rpython.jit.metainterp.resoperation import rop, ResOperation
 
 class UnrollableOptimizer(Optimizer):
     def force_op_from_preamble(self, preamble_op):
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to