Author: Carl Friedrich Bolz <cfb...@gmx.de>
Branch: better-storesink
Changeset: r87158:7e9fbd17bdb8
Date: 2016-09-06 19:38 +0200
http://bitbucket.org/pypy/pypy/changeset/7e9fbd17bdb8/

Log:    add some logging

diff --git a/rpython/translator/backendopt/cse.py 
b/rpython/translator/backendopt/cse.py
--- a/rpython/translator/backendopt/cse.py
+++ b/rpython/translator/backendopt/cse.py
@@ -8,6 +8,8 @@
 from rpython.translator.backendopt import ssa
 from rpython.translator.backendopt.writeanalyze import WriteAnalyzer
 
+from rpython.translator.backendopt.support import log
+
 def has_side_effects(op):
     try:
         return getattr(llop, op.opname).sideeffects
@@ -191,7 +193,7 @@
             if isinstance(arg, Variable):
                 return self.variable_families.find_rep(arg)
             return arg
-        added_some_same_as = False
+        added_same_as = 0
         for op in block.operations:
             # heap operations
             if op.opname == 'getfield':
@@ -200,7 +202,7 @@
                 if res is not None:
                     op.opname = 'same_as'
                     op.args = [res]
-                    added_some_same_as = True
+                    added_same_as += 1
                 else:
                     self.heapcache[tup] = op.result
                 continue
@@ -223,11 +225,11 @@
             if res is not None:
                 op.opname = 'same_as'
                 op.args = [res]
-                added_some_same_as = True
+                added_same_as += 1
                 self.variable_families.union(res, op.result)
             else:
                 self.purecache[key] = op.result
-        return added_some_same_as
+        return added_same_as
 
 def _merge(tuples, variable_families, analyzer, loop_blocks, backedges):
     if not tuples:
@@ -266,7 +268,7 @@
         caches_to_merge = collections.defaultdict(list)
         done = set()
 
-        added_some_same_as = False
+        added_same_as = 0
 
         while todo:
             block = todo.popleft()
@@ -279,8 +281,7 @@
                 cache = _merge(
                     caches_to_merge[block], variable_families, self.analyzer,
                     loops.get(block, None), current_backedges)
-                changed_block = cache.cse_block(block)
-                added_some_same_as = changed_block or added_some_same_as
+                added_same_as += cache.cse_block(block)
             else:
                 cache = Cache(variable_families, self.analyzer)
             done.add(block)
@@ -293,8 +294,10 @@
                     if exit.target not in done and exit.target not in todo: # 
XXX
                         todo.append(exit.target)
                 caches_to_merge[exit.target].append((exit, cache))
-        if added_some_same_as:
+        if added_same_as:
             ssa.SSA_to_SSI(graph)
             removenoops.remove_same_as(graph)
         simplify.transform_dead_op_vars(graph)
+        if added_same_as:
+            log.cse("removed %s ops in graph %s" % (added_same_as, graph))
 
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to