diff options
author | Richard Guenther <rguenther@suse.de> | 2012-09-05 13:29:13 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2012-09-05 13:29:13 +0000 |
commit | 18eb76ebfa25806dab9a23e726f1d8f914c51630 (patch) | |
tree | 6a4da24f3eeac38fb070a1b1006f7948c7c1d8c3 /gcc/tree-ssa-loop-manip.c | |
parent | e124e65f35b41bf118766d910bc307db160f3073 (diff) | |
download | gcc-18eb76ebfa25806dab9a23e726f1d8f914c51630.zip gcc-18eb76ebfa25806dab9a23e726f1d8f914c51630.tar.gz gcc-18eb76ebfa25806dab9a23e726f1d8f914c51630.tar.bz2 |
re PR tree-optimization/46590 (long compile time with -O2 and many loops)
2012-09-05 Richard Guenther <rguenther@suse.de>
PR tree-optimization/46590
* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Do not
update SSA form here.
(canonicalize_induction_variables): Assert we do not need to
update SSA form.
(tree_unroll_loops_completely): Update SSA form here.
* tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
Do not verify loop-closed SSA form if SSA form is not up-to-date.
From-SVN: r190978
Diffstat (limited to 'gcc/tree-ssa-loop-manip.c')
-rw-r--r-- | gcc/tree-ssa-loop-manip.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/tree-ssa-loop-manip.c b/gcc/tree-ssa-loop-manip.c index 832a501..9732fbe 100644 --- a/gcc/tree-ssa-loop-manip.c +++ b/gcc/tree-ssa-loop-manip.c @@ -752,7 +752,13 @@ gimple_duplicate_loop_to_header_edge (struct loop *loop, edge e, return false; #ifdef ENABLE_CHECKING - if (loops_state_satisfies_p (LOOP_CLOSED_SSA)) + /* ??? This forces needless update_ssa calls after processing each + loop instead of just once after processing all loops. We should + instead verify that loop-closed SSA form is up-to-date for LOOP + only (and possibly SSA form). For now just skip verifying if + there are to-be renamed variables. */ + if (!need_ssa_update_p (cfun) + && loops_state_satisfies_p (LOOP_CLOSED_SSA)) verify_loop_closed_ssa (true); #endif |