[pypy-commit] pypy vecopt2: all tests passing after finishing the refactoring

plan_rich noreply at buildbot.pypy.org
Tue May 5 09:45:51 CEST 2015


Author: Richard Plangger <rich at pasra.at>
Branch: vecopt2
Changeset: r77101:61ab28e5ecc8
Date: 2015-03-31 14:16 +0200
http://bitbucket.org/pypy/pypy/changeset/61ab28e5ecc8/

Log:	all tests passing after finishing the refactoring

diff --git a/rpython/jit/metainterp/optimizeopt/dependency.py b/rpython/jit/metainterp/optimizeopt/dependency.py
--- a/rpython/jit/metainterp/optimizeopt/dependency.py
+++ b/rpython/jit/metainterp/optimizeopt/dependency.py
@@ -183,11 +183,9 @@
         for var in variables:
             try:
                 def_idx = tracker.definition_index(var)
-                print "guard", guard_idx, def_idx, "var", var, "aaa", [d.idx_to for d in self.get_uses(def_idx)]
                 for dep in self.provides(def_idx):
                     if var in dep.args and dep.idx_to > guard_idx:
                         self._put_edge(guard_idx, dep.idx_to, var)
-                        print "put edge", guard_idx, dep.idx_to, var, dep.args
             except KeyError:
                 pass
         # handle fail args
@@ -374,10 +372,7 @@
         stmt_indices = [bi]
         while len(stmt_indices) > 0:
             idx = stmt_indices.pop()
-            for dep in self.dependencies(idx):
-                if idx < dep.idx_to:
-                    # this dependency points downwards (thus unrelevant)
-                    continue
+            for dep in self.depends(idx):
                 if ai > dep.idx_from:
                     # this points above ai (thus unrelevant)
                     continue
@@ -480,14 +475,12 @@
         node = self.schedulable_nodes[index]
         del self.schedulable_nodes[index]
         self.schedulable_nodes.append(node)
-        print "shifting", index, "(", node ,")","to", len(self.schedulable_nodes)-1, "sched", self.schedulable_nodes
 
     def schedule_all(self, opindices):
         while len(opindices) > 0:
             opidx = opindices.pop()
             for i,node in enumerate(self.schedulable_nodes):
                 if node == opidx:
-                    print "will sch[",i,"]",node
                     break
             else:
                 i = -1
@@ -497,7 +490,6 @@
     def schedule(self, index):
         node = self.schedulable_nodes[index]
         del self.schedulable_nodes[index]
-        print "schedule[", index, "](", node, "):",
         to_del = []
         adj_list = self.graph.adjacent_list[node]
         for dep in adj_list:
@@ -507,9 +499,7 @@
             candidate = dep.idx_to
             if self.is_schedulable(dep.idx_to):
                 self.schedulable_nodes.append(dep.idx_to)
-                print dep.idx_to, ",",
         self.graph.adjacent_list[node] = []
-        print ""
 
     def is_schedulable(self, idx):
         return self.graph.depends_count(idx) == 0
diff --git a/rpython/jit/metainterp/optimizeopt/test/test_vectorize.py b/rpython/jit/metainterp/optimizeopt/test/test_vectorize.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_vectorize.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_vectorize.py
@@ -30,7 +30,12 @@
 
     def build_dependency(self, ops):
         loop = self.parse_loop(ops)
-        return DependencyGraph(loop)
+        graph = DependencyGraph(loop)
+        self.assert_acyclic(graph)
+        return graph
+
+    def assert_acyclic(self, graph):
+        pass
 
     def parse_loop(self, ops):
         loop = self.parse(ops, postprocess=self.postprocess)
@@ -69,6 +74,7 @@
     def extend_packset(self, loop, unroll_factor = -1):
         opt = self.vec_optimizer_unrolled(loop, unroll_factor)
         opt.build_dependency_graph()
+        self._write_dot_and_convert_to_svg(opt.dependency_graph, opt.loop.operations, 'extend_packset')
         opt.find_adjacent_memory_refs()
         opt.extend_packset()
         return opt
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
@@ -308,7 +308,6 @@
             self.emit_vec_operation(pack)
             scheduler.schedule_all(opindices)
         else:
-            print "pack not schedulable", pack
             scheduler.schedule_later(0)
 
     def emit_vec_operation(self, pack):


More information about the pypy-commit mailing list