[pypy-svn] r65380 - in pypy/branch/pyjitpl5-experiments/pypy/jit/metainterp: . test
fijal at codespeak.net
fijal at codespeak.net
Sun May 24 16:51:28 CEST 2009
Author: fijal
Date: Sun May 24 16:51:27 2009
New Revision: 65380
Modified:
pypy/branch/pyjitpl5-experiments/pypy/jit/metainterp/optimize2.py
pypy/branch/pyjitpl5-experiments/pypy/jit/metainterp/test/test_optimize2.py
Log:
After fixing the runner logic, test started failing, fix
Modified: pypy/branch/pyjitpl5-experiments/pypy/jit/metainterp/optimize2.py
==============================================================================
--- pypy/branch/pyjitpl5-experiments/pypy/jit/metainterp/optimize2.py (original)
+++ pypy/branch/pyjitpl5-experiments/pypy/jit/metainterp/optimize2.py Sun May 24 16:51:27 2009
@@ -95,9 +95,13 @@
def optimize_operations(self):
newoperations = []
for op in self.loop.operations:
+ newop = op
for opt in self.optimizations[op.opnum]:
- if opt(op, self) is None:
- continue
+ newop = opt(op, self)
+ if newop is None:
+ break
+ if newop is None:
+ continue
if op.is_guard():
self.optimize_guard(op)
newoperations.append(op)
@@ -135,6 +139,10 @@
instnode.cls = op.args[1]
return op
+class SimpleVirtualizableOpt(object):
+ def optimize_guard_nonvirtualized(self, op, spec):
+ xxx
+
specializer = Specializer([])
def optimize_loop(options, old_loops, loop, cpu=None, spec=specializer):
Modified: pypy/branch/pyjitpl5-experiments/pypy/jit/metainterp/test/test_optimize2.py
==============================================================================
--- pypy/branch/pyjitpl5-experiments/pypy/jit/metainterp/test/test_optimize2.py (original)
+++ pypy/branch/pyjitpl5-experiments/pypy/jit/metainterp/test/test_optimize2.py Sun May 24 16:51:27 2009
@@ -9,7 +9,7 @@
from pypy.jit.backend.llgraph import runner
from pypy.jit.metainterp.optimize2 import (optimize_loop,
- ConsecutiveGuardClassRemoval, Specializer)
+ ConsecutiveGuardClassRemoval, Specializer, SimpleVirtualizableOpt)
from pypy.jit.metainterp.test.test_optimize import equaloplists, ANY
from pypy.jit.metainterp.test.oparser import parse
@@ -29,6 +29,10 @@
nodebox = BoxPtr(lltype.cast_opaque_ptr(llmemory.GCREF, node))
nodedescr = cpu.fielddescrof(NODE, 'value')
+ XY = lltype.GcStruct('XY', ('field', lltype.Signed),
+ hints= {'virtualizable2': True})
+ field_desc = cpu.fielddescrof(XY, 'field')
+
namespace = locals()
class OOtypeMixin(object):
@@ -84,6 +88,25 @@
[ConsecutiveGuardClassRemoval()]),
expected)
+ def test_basic_virtualizable(self):
+ py.test.skip("xxx")
+ pre_op = """
+ [p0]
+ guard_nonvirtualized(p0)
+ fail()
+ i1 = getfield_gc(p0, descr=field_desc)
+ i2 = getfield_gc(p0, descr=field_desc)
+ i3 = int_add(i1, i2)
+ """
+ expected = """
+ [p0]
+ i1 = getfield_gc(p0, descr=field_desc)
+ i3 = int_add(i1, i1)
+ """
+ self.assert_equal(self.optimize(pre_op, [SimpleVirtualizableOpt()]),
+ expected)
+
+
def test_remove_consecutive_guard_value_constfold(self):
py.test.skip("not yet")
n = BoxInt(0)
More information about the Pypy-commit
mailing list