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