[pypy-svn] r66362 - in pypy/branch/pyjitpl5-optimize4/pypy/jit/metainterp: . test

arigo at codespeak.net arigo at codespeak.net
Sat Jul 18 15:59:09 CEST 2009


Author: arigo
Date: Sat Jul 18 15:59:08 2009
New Revision: 66362

Added:
   pypy/branch/pyjitpl5-optimize4/pypy/jit/metainterp/optimize.py
   pypy/branch/pyjitpl5-optimize4/pypy/jit/metainterp/optimizeloop.py
      - copied, changed from r66359, pypy/branch/pyjitpl5-optimize4/pypy/jit/metainterp/optimize.py
   pypy/branch/pyjitpl5-optimize4/pypy/jit/metainterp/test/test_optimizeloop.py
      - copied, changed from r66360, pypy/branch/pyjitpl5-optimize4/pypy/jit/metainterp/test/test_optimize.py
Removed:
   pypy/branch/pyjitpl5-optimize4/pypy/jit/metainterp/test/test_optimize.py
Log:
Rename optimize.py to optimizeloop.py.  The plan is for it to contain
only the PerfectSpecializationFinder, which works on loops only
(not bridges).


Added: pypy/branch/pyjitpl5-optimize4/pypy/jit/metainterp/optimize.py
==============================================================================
--- (empty file)
+++ pypy/branch/pyjitpl5-optimize4/pypy/jit/metainterp/optimize.py	Sat Jul 18 15:59:08 2009
@@ -0,0 +1,44 @@
+from pypy.rlib.objectmodel import r_dict
+from pypy.rlib.unroll import unrolling_iterable
+from pypy.jit.metainterp import resoperation
+
+# ____________________________________________________________
+# Misc. utilities
+
+def av_eq(self, other):
+    return self.sort_key() == other.sort_key()
+
+def av_hash(self):
+    return self.sort_key()
+
+def av_newdict():
+    return r_dict(av_eq, av_hash)
+
+def _findall(Class, name_prefix):
+    result = []
+    for value, name in resoperation.opname.items():
+        if hasattr(Class, name_prefix + name):
+            result.append((value, getattr(Class, name_prefix + name)))
+    return unrolling_iterable(result)
+
+def partition(array, left, right):
+    last_item = array[right]
+    pivot = last_item.sort_key()
+    storeindex = left
+    for i in range(left, right):
+        if array[i].sort_key() <= pivot:
+            array[i], array[storeindex] = array[storeindex], array[i]
+            storeindex += 1
+    # Move pivot to its final place
+    array[storeindex], array[right] = last_item, array[storeindex]
+    return storeindex
+
+def quicksort(array, left, right):
+    # sort array[left:right+1] (i.e. bounds included)
+    if right > left:
+        pivotnewindex = partition(array, left, right)
+        quicksort(array, left, pivotnewindex - 1)
+        quicksort(array, pivotnewindex + 1, right)
+
+def sort_descrs(lst):
+    quicksort(lst, 0, len(lst)-1)

Copied: pypy/branch/pyjitpl5-optimize4/pypy/jit/metainterp/optimizeloop.py (from r66359, pypy/branch/pyjitpl5-optimize4/pypy/jit/metainterp/optimize.py)
==============================================================================
--- pypy/branch/pyjitpl5-optimize4/pypy/jit/metainterp/optimize.py	(original)
+++ pypy/branch/pyjitpl5-optimize4/pypy/jit/metainterp/optimizeloop.py	Sat Jul 18 15:59:08 2009
@@ -1,27 +1,8 @@
-from pypy.rlib.objectmodel import r_dict
-from pypy.rlib.unroll import unrolling_iterable
-from pypy.jit.metainterp import resoperation
 from pypy.jit.metainterp.specnode import prebuiltNotSpecNode
 from pypy.jit.metainterp.specnode import FixedClassSpecNode
 from pypy.jit.metainterp.specnode import VirtualInstanceSpecNode
 from pypy.jit.metainterp.history import AbstractValue
-
-
-def av_eq(self, other):
-    return self.sort_key() == other.sort_key()
-
-def av_hash(self):
-    return self.sort_key()
-
-def av_newdict():
-    return r_dict(av_eq, av_hash)
-
-def _findall(Class, name_prefix):
-    result = []
-    for value, name in resoperation.opname.items():
-        if hasattr(Class, name_prefix + name):
-            result.append((value, getattr(Class, name_prefix + name)))
-    return unrolling_iterable(result)
+from pypy.jit.metainterp.optimize import av_newdict, _findall, sort_descrs
 
 # ____________________________________________________________
 
@@ -218,27 +199,3 @@
         return VirtualInstanceSpecNode(exitnode.knownclsbox, fields)
 
 find_nodes_ops = _findall(PerfectSpecializationFinder, 'find_nodes_')
-
-# ____________________________________________________________
-
-def partition(array, left, right):
-    last_item = array[right]
-    pivot = last_item.sort_key()
-    storeindex = left
-    for i in range(left, right):
-        if array[i].sort_key() <= pivot:
-            array[i], array[storeindex] = array[storeindex], array[i]
-            storeindex += 1
-    # Move pivot to its final place
-    array[storeindex], array[right] = last_item, array[storeindex]
-    return storeindex
-
-def quicksort(array, left, right):
-    # sort array[left:right+1] (i.e. bounds included)
-    if right > left:
-        pivotnewindex = partition(array, left, right)
-        quicksort(array, left, pivotnewindex - 1)
-        quicksort(array, pivotnewindex + 1, right)
-
-def sort_descrs(lst):
-    quicksort(lst, 0, len(lst)-1)

Copied: pypy/branch/pyjitpl5-optimize4/pypy/jit/metainterp/test/test_optimizeloop.py (from r66360, pypy/branch/pyjitpl5-optimize4/pypy/jit/metainterp/test/test_optimize.py)
==============================================================================
--- pypy/branch/pyjitpl5-optimize4/pypy/jit/metainterp/test/test_optimize.py	(original)
+++ pypy/branch/pyjitpl5-optimize4/pypy/jit/metainterp/test/test_optimizeloop.py	Sat Jul 18 15:59:08 2009
@@ -8,7 +8,7 @@
 from pypy.jit.metainterp.history import (BoxInt, BoxPtr, ConstInt, ConstPtr,
                                          Const, ConstAddr, TreeLoop, BoxObj,
                                          ConstObj, AbstractDescr)
-from pypy.jit.metainterp.optimize import PerfectSpecializationFinder
+from pypy.jit.metainterp.optimizeloop import PerfectSpecializationFinder
 from pypy.jit.metainterp.optimize import sort_descrs
 from pypy.jit.metainterp.specnode import NotSpecNode, prebuiltNotSpecNode
 from pypy.jit.metainterp.specnode import FixedClassSpecNode



More information about the Pypy-commit mailing list