[pypy-svn] r78596 - pypy/branch/jit-unroll-loops/pypy/jit/metainterp/optimizeopt
hakanardo at codespeak.net
hakanardo at codespeak.net
Sun Oct 31 13:35:42 CET 2010
Author: hakanardo
Date: Sun Oct 31 13:35:36 2010
New Revision: 78596
Modified:
pypy/branch/jit-unroll-loops/pypy/jit/metainterp/optimizeopt/heap.py
pypy/branch/jit-unroll-loops/pypy/jit/metainterp/optimizeopt/optimizer.py
pypy/branch/jit-unroll-loops/pypy/jit/metainterp/optimizeopt/unroll.py
Log:
(hakanardo, arigo) saner propagation of force_at_end_of_preamble
Modified: pypy/branch/jit-unroll-loops/pypy/jit/metainterp/optimizeopt/heap.py
==============================================================================
--- pypy/branch/jit-unroll-loops/pypy/jit/metainterp/optimizeopt/heap.py (original)
+++ pypy/branch/jit-unroll-loops/pypy/jit/metainterp/optimizeopt/heap.py Sun Oct 31 13:35:36 2010
@@ -151,7 +151,6 @@
def force_at_end_of_preamble(self):
self.force_all_lazy_setfields()
- self.next_optimization.force_at_end_of_preamble()
def force_lazy_setfield(self, descr, before_guard=False):
try:
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 Sun Oct 31 13:35:36 2010
@@ -194,8 +194,7 @@
pass
def force_at_end_of_preamble(self):
- if self.next_optimization:
- self.next_optimization.force_at_end_of_preamble()
+ pass
class Optimizer(Optimization):
@@ -222,7 +221,14 @@
o.optimizer = self
o.setup()
else:
+ optimizations = []
self.first_optimization = self
+
+ self.optimizations = optimizations
+
+ def force_at_end_of_preamble(self):
+ for o in self.optimizations:
+ o.force_at_end_of_preamble()
def forget_numberings(self, virtualbox):
self.metainterp_sd.profiler.count(jitprof.OPT_FORCINGS)
Modified: pypy/branch/jit-unroll-loops/pypy/jit/metainterp/optimizeopt/unroll.py
==============================================================================
--- pypy/branch/jit-unroll-loops/pypy/jit/metainterp/optimizeopt/unroll.py (original)
+++ pypy/branch/jit-unroll-loops/pypy/jit/metainterp/optimizeopt/unroll.py Sun Oct 31 13:35:36 2010
@@ -17,7 +17,7 @@
def propagate_forward(self, op):
if op.getopnum() == rop.JUMP:
- self.force_at_end_of_preamble()
+ self.optimizer.force_at_end_of_preamble()
loop = self.optimizer.loop
assert op.getdescr() is loop.token
loop.preamble.operations = self.optimizer.newoperations
More information about the Pypy-commit
mailing list