Author: Richard Plangger <r...@pasra.at>
Branch: vecopt2
Changeset: r77070:489fa3b98d90
Date: 2015-03-11 16:04 +0100
http://bitbucket.org/pypy/pypy/changeset/489fa3b98d90/

Log:    creating basic classes needed

diff --git a/rpython/jit/metainterp/optimizeopt/vectorize.py 
b/rpython/jit/metainterp/optimizeopt/vectorize.py
--- a/rpython/jit/metainterp/optimizeopt/vectorize.py
+++ b/rpython/jit/metainterp/optimizeopt/vectorize.py
@@ -132,6 +132,19 @@
 
         self.vectorized = True
 
+    def vectorize_trace(self, loop):
+        """ Implementation of the algorithm introduced by Larsen. Refer to
+              '''Exploiting Superword Level Parallelism
+                 with Multimedia Instruction Sets'''
+            for more details.
+        """
+
+
+        # was not able to vectorize
+        return False
+
+
+
 class LoopVectorizeChecker(object):
 
     def __init__(self):
@@ -157,19 +170,35 @@
         default=LoopVectorizeChecker.default_count)
 LoopVectorizeChecker.inspect_operation = dispatch_opt
 
-"""
-Implementation of the algorithm introduced by Larsen. Refer to
-'Exploiting Superword Level Parallelism with Multimedia Instruction Sets'
-for more details.
-"""
 
 class Pack(object):
-    pass
+    """ A pack is a set of n statements that are:
+        * isomorphic
+        * independant
+        Statements are named operations in the code.
+    """
+    def __init__(self, ops):
+        self.operations = ops
 
-class Pair(object):
+class Pair(Pack):
+    """ A special Pack object with only two statements. """
     def __init__(self, left_op, right_op):
         assert isinstance(left_op, rop.ResOperation)
         assert isinstance(right_op, rop.ResOperation)
         self.left_op = left_op
         self.right_op = right_op
+        Pack.__init__(self, [left_op, right_op])
 
+
+class MemoryAccess(object):
+    def __init__(self, array, origin, offset):
+        self.array = array
+        self.origin = origin
+        self.offset = offset
+
+    def is_adjacent_to(self, mem_acc):
+        if self.array == mem_acc.array:
+            # TODO
+            return self.offset == mem_acc.offset
+
+
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to