Do slightly less work in jump threader

Jeff Law law@redhat.com
Mon Apr 28 13:47:00 GMT 2014


Per Richi's request, don't iterate over virtual outputs when invaliding 
outputs of statements which do not produce useful outputs for jump 
threading.  Related to 60902.

Bootstrapped and regression tested on x86_64-unknown-linux-gnu. 
Installed on the trunk.



-------------- next part --------------
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 61fd558..89930b0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2014-04-28  Jeff Law  <law@redhat.com>
+
+	PR tree-optimization/60902
+	* tree-ssa-threadedge.c
+	(record_temporary_equivalences_from_stmts_at_dest): Only iterate
+	over real defs when invalidating outputs from statements that do not
+	produce useful outputs for threading.
+
 2014-04-28  Richard Biener  <rguenther@suse.de>
 
 	PR tree-optimization/60979
diff --git a/gcc/tree-ssa-threadedge.c b/gcc/tree-ssa-threadedge.c
index 8a0103b..7621348 100644
--- a/gcc/tree-ssa-threadedge.c
+++ b/gcc/tree-ssa-threadedge.c
@@ -398,7 +398,7 @@ record_temporary_equivalences_from_stmts_at_dest (edge e,
 	  ssa_op_iter iter;
 
 	  if (backedge_seen)
-	    FOR_EACH_SSA_TREE_OPERAND (op, stmt, iter, SSA_OP_ALL_DEFS)
+	    FOR_EACH_SSA_TREE_OPERAND (op, stmt, iter, SSA_OP_DEF)
 	      {
 		/* This call only invalidates equivalences created by
 		   PHI nodes.  This is by design to keep the cost of


More information about the Gcc-patches mailing list