+2012-10-25 Jan Hubicka <jh@suse.cz>
+
+ PR tree-optimize/54980
+ * tree-ssa-loop-ivcanon.c (constant_after_peeling): Fix
+ obvious typo.
+ (loop_edge_to_cancel): Be sure that the edge is from an conditional
+ so we can cancel it.
+
2012-10-25 Marc Glisse <marc.glisse@inria.fr>
PR c++/54427
/* First make fast look if we see constant array inside. */
while (handled_component_p (base))
base = TREE_OPERAND (base, 0);
- if ((DECL_P (base) == VAR_DECL
+ if ((DECL_P (base)
&& const_value_known_p (base))
|| CONSTANT_CLASS_P (base))
{
else
edge_to_cancel = EDGE_SUCC (edge_to_cancel->src, 0);
+ /* We only can handle conditionals. */
+ if (!(edge_to_cancel->flags & (EDGE_TRUE_VALUE | EDGE_FALSE_VALUE)))
+ continue;
+
/* We should never have conditionals in the loop latch. */
gcc_assert (edge_to_cancel->dest != loop->header);