[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