[pypy-svn] r78512 - pypy/branch/jit-unroll-loops/pypy/jit/metainterp/optimizeopt
cfbolz at codespeak.net
cfbolz at codespeak.net
Sat Oct 30 13:15:25 CEST 2010
Author: cfbolz
Date: Sat Oct 30 13:15:24 2010
New Revision: 78512
Modified:
pypy/branch/jit-unroll-loops/pypy/jit/metainterp/optimizeopt/__init__.py
pypy/branch/jit-unroll-loops/pypy/jit/metainterp/optimizeopt/optimizer.py
pypy/branch/jit-unroll-loops/pypy/jit/metainterp/optimizeopt/virtualize.py
Log:
- only use unroll optimization if we are not in a bridge
- rename the confusing flag "virtuals" to "not_a_bridge"
Modified: pypy/branch/jit-unroll-loops/pypy/jit/metainterp/optimizeopt/__init__.py
==============================================================================
--- pypy/branch/jit-unroll-loops/pypy/jit/metainterp/optimizeopt/__init__.py (original)
+++ pypy/branch/jit-unroll-loops/pypy/jit/metainterp/optimizeopt/__init__.py Sat Oct 30 13:15:24 2010
@@ -6,20 +6,21 @@
from pypy.jit.metainterp.optimizeopt.string import OptString
from pypy.jit.metainterp.optimizeopt.unroll import OptUnroll
-def optimize_loop_1(metainterp_sd, loop, virtuals=True):
+def optimize_loop_1(metainterp_sd, loop, not_a_bridge=True):
"""Optimize loop.operations to make it match the input of loop.specnodes
and to remove internal overheadish operations. Note that loop.specnodes
must be applicable to the loop; you will probably get an AssertionError
if not.
"""
- optimizations = [OptUnroll(),
- OptIntBounds(),
+ optimizations = [OptIntBounds(),
OptRewrite(),
OptVirtualize(),
OptString(),
OptHeap(),
]
- optimizer = Optimizer(metainterp_sd, loop, optimizations, virtuals)
+ if not_a_bridge:
+ optimizations.insert(0, OptUnroll())
+ optimizer = Optimizer(metainterp_sd, loop, optimizations, not_a_bridge)
optimizer.propagate_all_forward()
def optimize_bridge_1(metainterp_sd, bridge):
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 Sat Oct 30 13:15:24 2010
@@ -190,7 +190,7 @@
op = ResOperation(opnum, args, result)
self.optimizer.pure_operations[self.optimizer.make_args_key(op)] = op
- def setup(self, virtuals):
+ def setup(self, not_a_bridge):
pass
def force_at_end_of_preamble(self):
@@ -199,7 +199,7 @@
class Optimizer(Optimization):
- def __init__(self, metainterp_sd, loop, optimizations=None, virtuals=True):
+ def __init__(self, metainterp_sd, loop, optimizations=None, not_a_bridge=True):
self.metainterp_sd = metainterp_sd
self.cpu = metainterp_sd.cpu
self.loop = loop
@@ -220,7 +220,7 @@
optimizations[-1].next_optimization = self
for o in optimizations:
o.optimizer = self
- o.setup(virtuals)
+ o.setup(not_a_bridge)
else:
self.first_optimization = self
Modified: pypy/branch/jit-unroll-loops/pypy/jit/metainterp/optimizeopt/virtualize.py
==============================================================================
--- pypy/branch/jit-unroll-loops/pypy/jit/metainterp/optimizeopt/virtualize.py (original)
+++ pypy/branch/jit-unroll-loops/pypy/jit/metainterp/optimizeopt/virtualize.py Sat Oct 30 13:15:24 2010
@@ -278,8 +278,8 @@
class OptVirtualize(Optimization):
"Virtualize objects until they escape."
- def setup(self, virtuals):
- if not virtuals:
+ def setup(self, not_a_bridge):
+ if not not_a_bridge:
return
inputargs = self.optimizer.loop.inputargs
More information about the Pypy-commit
mailing list