[pypy-svn] r78681 - in pypy/branch/jit-unroll-loops/pypy/jit/metainterp: optimizeopt test
hakanardo at codespeak.net
hakanardo at codespeak.net
Wed Nov 3 21:48:46 CET 2010
Author: hakanardo
Date: Wed Nov 3 21:48:43 2010
New Revision: 78681
Modified:
pypy/branch/jit-unroll-loops/pypy/jit/metainterp/optimizeopt/optimizer.py
pypy/branch/jit-unroll-loops/pypy/jit/metainterp/test/test_optimizeopt.py
Log:
This test should fail on trunk aswell. Problem is that getvalue() uses getinterned(), while calling make_constat() on a value already in cached_fields does not.
Modified: pypy/branch/jit-unroll-loops/pypy/jit/metainterp/optimizeopt/optimizer.py
==============================================================================
--- pypy/branch/jit-unroll-loops/pypy/jit/metainterp/optimizeopt/optimizer.py (original)
+++ pypy/branch/jit-unroll-loops/pypy/jit/metainterp/optimizeopt/optimizer.py Wed Nov 3 21:48:43 2010
@@ -320,7 +320,6 @@
self.i = 0
while self.i < len(self.loop.operations):
op = self.loop.operations[self.i]
- #print "OP: %s" % op
self.first_optimization.propagate_forward(op)
self.i += 1
self.loop.operations = self.newoperations
Modified: pypy/branch/jit-unroll-loops/pypy/jit/metainterp/test/test_optimizeopt.py
==============================================================================
--- pypy/branch/jit-unroll-loops/pypy/jit/metainterp/test/test_optimizeopt.py (original)
+++ pypy/branch/jit-unroll-loops/pypy/jit/metainterp/test/test_optimizeopt.py Wed Nov 3 21:48:43 2010
@@ -3553,6 +3553,41 @@
"""
self.optimize_loop(ops, expected, expected)
+ def test_getfield_guard_const_preamble(self):
+ ops = """
+ [p0]
+ p01 = getfield_gc(p0, descr=nextdescr)
+ p02 = getfield_gc(p01, descr=valuedescr)
+ guard_value(p01, ConstPtr(myptr)) []
+ p11 = getfield_gc(p0, descr=nextdescr)
+ p12 = getfield_gc(p11, descr=valuedescr)
+ guard_value(p11, ConstPtr(myptr)) []
+ p64 = call_may_force(p02, p12, descr=plaincalldescr)
+
+ p21 = getfield_gc(p0, descr=nextdescr)
+ p22 = getfield_gc(p21, descr=valuedescr)
+ guard_value(p21, ConstPtr(myptr)) []
+ p31 = getfield_gc(p0, descr=nextdescr)
+ p32 = getfield_gc(p31, descr=valuedescr)
+ guard_value(p31, ConstPtr(myptr)) []
+ p65 = call_may_force(p22, p32, descr=plaincalldescr)
+ jump(p0)
+ """
+ expected = """
+ [p0]
+ p01 = getfield_gc(p0, descr=nextdescr)
+ p02 = getfield_gc(p01, descr=valuedescr)
+ guard_value(p01, ConstPtr(myptr)) []
+ p64 = call_may_force(p02, p02, descr=plaincalldescr)
+
+ p21 = getfield_gc(p0, descr=nextdescr)
+ p22 = getfield_gc(p21, descr=valuedescr)
+ guard_value(p21, ConstPtr(myptr)) []
+ p65 = call_may_force(p22, p22, descr=plaincalldescr)
+ jump(p0)
+ """
+ self.optimize_loop(ops, expected, expected)
+
def test_addsub_ovf(self):
ops = """
[i0]
More information about the Pypy-commit
mailing list