+2013-11-21 Jeff Law <law@redhat.com>
+
+ PR tree-optimization/59221
+ * tree-ssa-threadedge.c (thread_across_edge): Properly manage
+ temporary equivalences when threading through joiner blocks.
+
2013-11-21 Joseph Myers <joseph@codesourcery.com>
PR rtl-optimization/55950
+2013-11-21 Jeff Law <law@redhat.com>
+
+ PR tree-optimization/59221
+ * gcc.c-torture/execute/pr59221.c: New test.
+
2013-11-21 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
PR libfortran/59227
/* Look at each successor of E->dest to see if we can thread through it. */
FOR_EACH_EDGE (taken_edge, ei, e->dest->succs)
{
+ /* Push a fresh marker so we can unwind the equivalences created
+ for each of E->dest's successors. */
+ stack->safe_push (NULL_TREE);
+
/* Avoid threading to any block we have already visited. */
bitmap_clear (visited);
bitmap_set_bit (visited, taken_edge->dest->index);
{
delete_jump_thread_path (path);
}
+
+ /* And unwind the equivalence table. */
+ remove_temporary_equivalences (stack);
}
BITMAP_FREE (visited);
}