[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