Author: Maciej Fijalkowski <[email protected]>
Branch: optresult-unroll
Changeset: r79285:e476d8be1785
Date: 2015-08-28 18:32 +0200
http://bitbucket.org/pypy/pypy/changeset/e476d8be1785/
Log: work a bit on tests
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
@@ -258,6 +258,8 @@
self.optearlyforce = None
self.optunroll = None
+ self._emitting = True
+
self.set_optimizations(optimizations)
self.setup()
@@ -576,8 +578,9 @@
self.force_box(farg)
elif op.can_raise():
self.exception_might_have_happened = True
- self._really_emitted_operation = op
- self._newoperations.append(op)
+ if self._emitting:
+ self._really_emitted_operation = op
+ self._newoperations.append(op)
def getlastop(self):
return self._really_emitted_operation
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
@@ -1225,22 +1225,24 @@
i1 = int_add(i0, 1)
p1 = new_with_vtable(descr=nodesize2)
p2 = new_with_vtable(descr=nodesize2)
+ setfield_gc(p2, i1, descr=valuedescr)
setfield_gc(p2, p1, descr=nextdescr)
+ setfield_gc(p1, p2, descr=nextdescr)
setfield_gc(p0, p1, descr=nextdescr)
- setfield_gc(p2, i1, descr=valuedescr)
- setfield_gc(p1, p2, descr=nextdescr)
- jump(p1, p2, i1)
+ jump(p1)
"""
loop = """
- [p0, p41, i0]
+ [p0]
+ p41 = getfield_gc_r(p0, descr=nextdescr)
+ i0 = getfield_gc_i(p41, descr=valuedescr)
i1 = int_add(i0, 1)
p1 = new_with_vtable(descr=nodesize2)
p2 = new_with_vtable(descr=nodesize2)
+ setfield_gc(p2, i1, descr=valuedescr)
setfield_gc(p2, p1, descr=nextdescr)
setfield_gc(p0, p1, descr=nextdescr)
- setfield_gc(p2, i1, descr=valuedescr)
setfield_gc(p1, p2, descr=nextdescr)
- jump(p1, p2, i1)
+ jump(p1)
"""
self.optimize_loop(ops, loop, preamble)
@@ -1294,8 +1296,8 @@
i28 = int_add(i0, 1)
i29 = int_add(i28, 1)
p30 = new_with_vtable(descr=nodesize)
+ setfield_gc(p30, i28, descr=valuedescr)
setfield_gc(p3, p30, descr=nextdescr)
- setfield_gc(p30, i28, descr=valuedescr)
#p46 = same_as(p30) # This same_as should be killed by backend
jump(i29, p30, p3)
"""
@@ -1304,8 +1306,8 @@
i28 = int_add(i0, 1)
i29 = int_add(i28, 1)
p30 = new_with_vtable(descr=nodesize)
+ setfield_gc(p30, i28, descr=valuedescr)
setfield_gc(p3, p30, descr=nextdescr)
- setfield_gc(p30, i28, descr=valuedescr)
jump(i29, p30, p3)
"""
self.optimize_loop(ops, expected, preamble)
@@ -2719,8 +2721,8 @@
guard_true(i3) [p1, p4]
i4 = int_neg(i2)
p2 = new_with_vtable(descr=nodesize)
+ setfield_gc(p2, p4, descr=nextdescr)
setfield_gc(p1, p2, descr=nextdescr)
- setfield_gc(p2, p4, descr=nextdescr)
#i101 = same_as(i4)
jump(p1, i2, i4, p4) #, i101)
"""
@@ -2728,8 +2730,8 @@
[p1, i2, i4, p4] #, i5]
guard_true(i4) [p1, p4]
p2 = new_with_vtable(descr=nodesize)
+ setfield_gc(p2, p4, descr=nextdescr)
setfield_gc(p1, p2, descr=nextdescr)
- setfield_gc(p2, p4, descr=nextdescr)
jump(p1, i2, 1, p4) #, i5)
"""
self.optimize_loop(ops, expected, preamble)
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
@@ -13,7 +13,7 @@
from rpython.jit.metainterp import compile
from rpython.rlib.debug import debug_print
-class UnrollableOptimizer(Optimizer):
+class UnrollableOptimizer(Optimizer):
def force_op_from_preamble(self, preamble_op):
if isinstance(preamble_op, PreambleOp):
op = preamble_op.op
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit