+2017-01-27 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/79244
+ * tree-vrp.c (remove_range_assertions): Forcefully propagate
+ out SSA names even if abnormal.
+
2017-01-27 Jakub Jelinek <jakub@redhat.com>
* realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
+2017-01-27 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/79244
+ * gcc.dg/torture/pr79244.c: New testcase.
+
2017-01-27 Jakub Jelinek <jakub@redhat.com>
* g++.dg/cilk-plus/CK/fib-opr-overload.cc (main): Change
}
}
- /* Propagate the RHS into every use of the LHS. */
- replace_uses_by (lhs, var);
+ /* Propagate the RHS into every use of the LHS. For SSA names
+ also propagate abnormals as it merely restores the original
+ IL in this case (an replace_uses_by would assert). */
+ if (TREE_CODE (var) == SSA_NAME)
+ {
+ imm_use_iterator iter;
+ use_operand_p use_p;
+ gimple *use_stmt;
+ FOR_EACH_IMM_USE_STMT (use_stmt, iter, lhs)
+ FOR_EACH_IMM_USE_ON_STMT (use_p, iter)
+ SET_USE (use_p, var);
+ }
+ else
+ replace_uses_by (lhs, var);
/* And finally, remove the copy, it is not needed. */
gsi_remove (&si, true);