[Bug tree-optimization/51879] Missed tail merging with non-const/pure calls
vries at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Jan 18 06:14:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51879
--- Comment #1 from vries at gcc dot gnu.org 2012-01-18 05:41:34 UTC ---
This works for the 3 examples:
...
Index: tree-ssa-sccvn.c
===================================================================
--- tree-ssa-sccvn.c (revision 182098)
+++ tree-ssa-sccvn.c (working copy)
@@ -3360,8 +3360,7 @@ visit_use (tree use)
/* ??? We should handle stores from calls. */
else if (TREE_CODE (lhs) == SSA_NAME)
{
- if (!gimple_call_internal_p (stmt)
- && gimple_call_flags (stmt) & (ECF_PURE | ECF_CONST))
+ if (!gimple_call_internal_p (stmt))
changed = visit_reference_op_call (lhs, stmt);
else
changed = defs_to_varying (stmt);
...
I'll test this to see what breaks.
More information about the Gcc-bugs
mailing list