http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58775
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Author: jakub Date: Wed Oct 23 16:19:17 2013 New Revision: 203979 URL: http://gcc.gnu.org/viewcvs?rev=203979&root=gcc&view=rev Log: PR tree-optimization/58775 PR tree-optimization/58791 * tree-ssa-reassoc.c (reassoc_stmt_dominates_stmt_p): New function. (insert_stmt_after): Rewritten, don't move the stmt, but really insert it. (get_stmt_uid_with_default): Remove. (build_and_add_sum): Use insert_stmt_after and reassoc_stmt_dominates_stmt_p. Fix up uid if bb contains only labels. (update_range_test): Set uid on stmts added by force_gimple_operand_gsi. Don't immediately modify statements in inter-bb optimization, just update oe->op values. (optimize_range_tests): Return bool whether any changed have been made. (update_ops): New function. (struct inter_bb_range_test_entry): New type. (maybe_optimize_range_tests): Perform statement changes here. (not_dominated_by, appears_later_in_bb, get_def_stmt, ensure_ops_are_available): Remove. (find_insert_point): Rewritten. (rewrite_expr_tree): Remove MOVED argument, add CHANGED argument, return LHS of the (new resp. old) stmt. Don't call ensure_ops_are_available, don't reuse SSA_NAMEs, recurse first instead of last, move new stmt at the right place. (linearize_expr, repropagate_negates): Don't reuse SSA_NAMEs. (negate_value): Likewise. Set uids. (break_up_subtract_bb): Initialize uids. (reassociate_bb): Adjust rewrite_expr_tree caller. (do_reassoc): Don't call renumber_gimple_stmt_uids. * gcc.dg/guality/pr58791-1.c: New test. * gcc.dg/guality/pr58791-2.c: New test. * gcc.dg/guality/pr58791-3.c: New test. * gcc.dg/guality/pr58791-4.c: New test. * gcc.dg/guality/pr58791-5.c: New test. * gcc.c-torture/compile/pr58775.c: New test. * gcc.dg/tree-ssa/reassoc-28.c: Don't scan reassoc1 dump. Added: trunk/gcc/testsuite/gcc.c-torture/compile/pr58775.c trunk/gcc/testsuite/gcc.dg/guality/pr58791-1.c trunk/gcc/testsuite/gcc.dg/guality/pr58791-2.c trunk/gcc/testsuite/gcc.dg/guality/pr58791-3.c trunk/gcc/testsuite/gcc.dg/guality/pr58791-4.c trunk/gcc/testsuite/gcc.dg/guality/pr58791-5.c Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.dg/tree-ssa/reassoc-28.c trunk/gcc/tree-ssa-reassoc.c