diff options
author | rakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-05-27 17:23:11 +0000 |
---|---|---|
committer | rakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-05-27 17:23:11 +0000 |
commit | 7a3bf727e16b2e01cb8d18c050a1fdfe1175da2f (patch) | |
tree | 877b6d8a4f3bb9732c119f5030e7349e852d40a1 | |
parent | dfbbba6106fee07791f0313f926d1c3d46b3f7a0 (diff) | |
download | gcc-7a3bf727e16b2e01cb8d18c050a1fdfe1175da2f.tar.gz |
* tree-vrp.c (execute_vrp): Do not check whether current_loops == NULL.
* tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
* ifcvt.c (if_convert): Ditto.
* tree-ssa-threadupdate.c (thread_block): Ditto.
(thread_through_all_blocks): Ditto. Assert that loops were analysed.
* tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
verify_loop_closed_ssa): Check number_of_loops instead of current_loops.
* predict.c (tree_estimate_probability): Ditto.
* tree-if-conv.c (main_tree_if_conversion): Ditto.
* tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
* modulo-sched.c (sms_schedule): Ditto.
* tree-scalar-evolution.c (scev_const_prop): Ditto.
(scev_finalize): Do not do anything if scev analysis was not
initialized.
* cfgloopanal.c (mark_irreducible_loops): Do not check whether
current_loops == NULL.
(mark_loop_exit_edges): Check number_of_loops instead of current_loops.
* loop-init.c (loop_optimizer_init): Do not free current_loops when
there are no loops.
(loop_optimizer_finalize): Assert that loops were analyzed.
(rtl_move_loop_invariants, rtl_unswitch, rtl_unroll_and_peel_loops,
rtl_doloop): Check number_of_loops instead of current_loops.
* tree-ssa-loop.c (tree_loop_optimizer_init): Do not check whether
current_loops == NULL.
(tree_ssa_loop_init, tree_ssa_loop_im, tree_ssa_loop_unswitch,
gate_tree_vectorize tree_linear_transform, check_data_deps,
tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts):
Check number_of_loops instead of current_loops.
(tree_ssa_loop_done): Do not check whether current_loops == NULL.
* tree-ssa-pre.c (fini_pre): Do not take do_fre argument. Always
free loops if available.
(execute_pre): Do not pass do_fre to fini_pre.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@125114 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 36 | ||||
-rw-r--r-- | gcc/cfgloopanal.c | 70 | ||||
-rw-r--r-- | gcc/ifcvt.c | 7 | ||||
-rw-r--r-- | gcc/loop-init.c | 19 | ||||
-rw-r--r-- | gcc/modulo-sched.c | 7 | ||||
-rw-r--r-- | gcc/predict.c | 6 | ||||
-rw-r--r-- | gcc/tree-chrec.c | 8 | ||||
-rw-r--r-- | gcc/tree-if-conv.c | 2 | ||||
-rw-r--r-- | gcc/tree-scalar-evolution.c | 4 | ||||
-rw-r--r-- | gcc/tree-ssa-loop-ch.c | 7 | ||||
-rw-r--r-- | gcc/tree-ssa-loop-manip.c | 7 | ||||
-rw-r--r-- | gcc/tree-ssa-loop.c | 30 | ||||
-rw-r--r-- | gcc/tree-ssa-pre.c | 6 | ||||
-rw-r--r-- | gcc/tree-ssa-threadupdate.c | 19 | ||||
-rw-r--r-- | gcc/tree-vrp.c | 14 |
15 files changed, 124 insertions, 118 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4df2a050d37..d162264a7c4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,39 @@ +2007-05-27 Zdenek Dvorak <dvorakz@suse.cz> + + * tree-vrp.c (execute_vrp): Do not check whether current_loops == NULL. + * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto. + * ifcvt.c (if_convert): Ditto. + * tree-ssa-threadupdate.c (thread_block): Ditto. + (thread_through_all_blocks): Ditto. Assert that loops were analysed. + * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa, + verify_loop_closed_ssa): Check number_of_loops instead of current_loops. + * predict.c (tree_estimate_probability): Ditto. + * tree-if-conv.c (main_tree_if_conversion): Ditto. + * tree-ssa-loop-ch.c (copy_loop_headers): Ditto. + * modulo-sched.c (sms_schedule): Ditto. + * tree-scalar-evolution.c (scev_const_prop): Ditto. + (scev_finalize): Do not do anything if scev analysis was not + initialized. + * cfgloopanal.c (mark_irreducible_loops): Do not check whether + current_loops == NULL. + (mark_loop_exit_edges): Check number_of_loops instead of current_loops. + * loop-init.c (loop_optimizer_init): Do not free current_loops when + there are no loops. + (loop_optimizer_finalize): Assert that loops were analyzed. + (rtl_move_loop_invariants, rtl_unswitch, rtl_unroll_and_peel_loops, + rtl_doloop): Check number_of_loops instead of current_loops. + * tree-ssa-loop.c (tree_loop_optimizer_init): Do not check whether + current_loops == NULL. + (tree_ssa_loop_init, tree_ssa_loop_im, tree_ssa_loop_unswitch, + gate_tree_vectorize tree_linear_transform, check_data_deps, + tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds, + tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts): + Check number_of_loops instead of current_loops. + (tree_ssa_loop_done): Do not check whether current_loops == NULL. + * tree-ssa-pre.c (fini_pre): Do not take do_fre argument. Always + free loops if available. + (execute_pre): Do not pass do_fre to fini_pre. + 2007-05-27 Tobias Burnus <burnus@net-b.de> PR middle-end/32083 diff --git a/gcc/cfgloopanal.c b/gcc/cfgloopanal.c index 54d00ce574c..760542a0ba8 100644 --- a/gcc/cfgloopanal.c +++ b/gcc/cfgloopanal.c @@ -273,7 +273,7 @@ mark_irreducible_loops (void) edge_iterator ei; int i, src, dest; struct graph *g; - int num = current_loops ? number_of_loops () : 1; + int num = number_of_loops (); int *queue1 = XNEWVEC (int, last_basic_block + num); int *queue2 = XNEWVEC (int, last_basic_block + num); int nq; @@ -281,6 +281,8 @@ mark_irreducible_loops (void) struct loop *cloop, *loop; loop_iterator li; + gcc_assert (current_loops != NULL); + /* Reset the flags. */ FOR_BB_BETWEEN (act, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR, next_bb) { @@ -302,36 +304,32 @@ mark_irreducible_loops (void) src = BB_REPR (act); dest = BB_REPR (e->dest); - if (current_loops) - { - /* Ignore latch edges. */ - if (e->dest->loop_father->header == e->dest - && e->dest->loop_father->latch == act) - continue; + /* Ignore latch edges. */ + if (e->dest->loop_father->header == e->dest + && e->dest->loop_father->latch == act) + continue; + + /* Edges inside a single loop should be left where they are. Edges + to subloop headers should lead to representative of the subloop, + but from the same place. - /* Edges inside a single loop should be left where they are. Edges - to subloop headers should lead to representative of the subloop, - but from the same place. - - Edges exiting loops should lead from representative - of the son of nearest common ancestor of the loops in that - act lays. */ - - if (e->dest->loop_father->header == e->dest) - dest = LOOP_REPR (e->dest->loop_father); - - if (!flow_bb_inside_loop_p (act->loop_father, e->dest)) - { - depth = 1 + loop_depth (find_common_loop (act->loop_father, - e->dest->loop_father)); - if (depth == loop_depth (act->loop_father)) - cloop = act->loop_father; - else - cloop = VEC_index (loop_p, act->loop_father->superloops, - depth); - - src = LOOP_REPR (cloop); - } + Edges exiting loops should lead from representative + of the son of nearest common ancestor of the loops in that + act lays. */ + + if (e->dest->loop_father->header == e->dest) + dest = LOOP_REPR (e->dest->loop_father); + + if (!flow_bb_inside_loop_p (act->loop_father, e->dest)) + { + depth = 1 + loop_depth (find_common_loop (act->loop_father, + e->dest->loop_father)); + if (depth == loop_depth (act->loop_father)) + cloop = act->loop_father; + else + cloop = VEC_index (loop_p, act->loop_father->superloops, depth); + + src = LOOP_REPR (cloop); } add_edge (g, src, dest, e); @@ -347,12 +345,9 @@ mark_irreducible_loops (void) queue1[nq++] = BB_REPR (act); } - if (current_loops) + FOR_EACH_LOOP (li, loop, 0) { - FOR_EACH_LOOP (li, loop, 0) - { - queue1[nq++] = LOOP_REPR (loop); - } + queue1[nq++] = LOOP_REPR (loop); } dfs (g, queue1, nq, queue2, false); for (i = 0; i < nq; i++) @@ -366,8 +361,7 @@ mark_irreducible_loops (void) free (queue1); free (queue2); - if (current_loops) - current_loops->state |= LOOPS_HAVE_MARKED_IRREDUCIBLE_REGIONS; + current_loops->state |= LOOPS_HAVE_MARKED_IRREDUCIBLE_REGIONS; } /* Counts number of insns inside LOOP. */ @@ -605,7 +599,7 @@ mark_loop_exit_edges (void) basic_block bb; edge e; - if (!current_loops) + if (number_of_loops () <= 1) return; FOR_EACH_BB (bb) diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c index 6fca205a4ef..28f510cda29 100644 --- a/gcc/ifcvt.c +++ b/gcc/ifcvt.c @@ -3953,11 +3953,8 @@ if_convert (int x_life_data_ok) gcc_assert (! no_new_pseudos || reload_completed); loop_optimizer_init (AVOID_CFG_MODIFICATIONS); - if (current_loops) - { - mark_loop_exit_edges (); - loop_optimizer_finalize (); - } + mark_loop_exit_edges (); + loop_optimizer_finalize (); free_dominance_info (CDI_DOMINATORS); /* Compute postdominators if we think we'll use them. */ diff --git a/gcc/loop-init.c b/gcc/loop-init.c index 3aa6527a80a..d78b5ace52e 100644 --- a/gcc/loop-init.c +++ b/gcc/loop-init.c @@ -51,14 +51,6 @@ loop_optimizer_init (unsigned flags) flow_loops_find (loops); current_loops = loops; - if (number_of_loops () <= 1) - { - /* No loops (the 1 returned by number_of_loops corresponds to the fake - loop that we put as a root of the loop tree). */ - loop_optimizer_finalize (); - return; - } - if (flags & LOOPS_MAY_HAVE_MULTIPLE_LATCHES) { /* If the loops may have multiple latches, we cannot canonicalize @@ -105,8 +97,7 @@ loop_optimizer_finalize (void) struct loop *loop; basic_block bb; - if (!current_loops) - return; + gcc_assert (current_loops != NULL); FOR_EACH_LOOP (li, loop, 0) { @@ -244,7 +235,7 @@ gate_rtl_move_loop_invariants (void) static unsigned int rtl_move_loop_invariants (void) { - if (current_loops) + if (number_of_loops () > 1) move_loop_invariants (); return 0; } @@ -277,7 +268,7 @@ gate_rtl_unswitch (void) static unsigned int rtl_unswitch (void) { - if (current_loops) + if (number_of_loops () > 1) unswitch_loops (); return 0; } @@ -310,7 +301,7 @@ gate_rtl_unroll_and_peel_loops (void) static unsigned int rtl_unroll_and_peel_loops (void) { - if (current_loops) + if (number_of_loops () > 1) { int flags = 0; @@ -359,7 +350,7 @@ static unsigned int rtl_doloop (void) { #ifdef HAVE_doloop_end - if (current_loops) + if (number_of_loops () > 1) doloop_optimize_loops (); #endif return 0; diff --git a/gcc/modulo-sched.c b/gcc/modulo-sched.c index 36278a3a9eb..3e14ff5ac82 100644 --- a/gcc/modulo-sched.c +++ b/gcc/modulo-sched.c @@ -893,8 +893,11 @@ sms_schedule (void) loop_optimizer_init (LOOPS_HAVE_PREHEADERS | LOOPS_HAVE_RECORDED_EXITS); - if (!current_loops) - return; /* There are no loops to schedule. */ + if (number_of_loops () <= 1) + { + loop_optimizer_finalize (); + return; /* There are no loops to schedule. */ + } /* Initialize issue_rate. */ if (targetm.sched.issue_rate) diff --git a/gcc/predict.c b/gcc/predict.c index f4ecb6fd415..0aa2c953757 100644 --- a/gcc/predict.c +++ b/gcc/predict.c @@ -1353,7 +1353,7 @@ tree_estimate_probability (void) basic_block bb; loop_optimizer_init (0); - if (current_loops && dump_file && (dump_flags & TDF_DETAILS)) + if (dump_file && (dump_flags & TDF_DETAILS)) flow_loops_dump (dump_file, NULL, 0); add_noreturn_fake_exit_edges (); @@ -1368,7 +1368,7 @@ tree_estimate_probability (void) mark_irreducible_loops (); record_loop_exits (); - if (current_loops) + if (number_of_loops () > 1) predict_loops (); FOR_EACH_BB (bb) @@ -1731,7 +1731,7 @@ estimate_loops (void) basic_block bb; /* Start by estimating the frequencies in the loops. */ - if (current_loops) + if (number_of_loops () > 1) estimate_loops_at_level (current_loops->tree_root->inner); /* Now propagate the frequencies through all the blocks. */ diff --git a/gcc/tree-chrec.c b/gcc/tree-chrec.c index 45bee574f85..f55d004c8e9 100644 --- a/gcc/tree-chrec.c +++ b/gcc/tree-chrec.c @@ -974,13 +974,7 @@ evolution_function_is_invariant_rec_p (tree chrec, int loopnum) bool evolution_function_is_invariant_p (tree chrec, int loopnum) { - if (evolution_function_is_constant_p (chrec)) - return true; - - if (current_loops != NULL) - return evolution_function_is_invariant_rec_p (chrec, loopnum); - - return false; + return evolution_function_is_invariant_rec_p (chrec, loopnum); } /* Determine whether the given tree is an affine multivariate diff --git a/gcc/tree-if-conv.c b/gcc/tree-if-conv.c index 580848eb06a..de2933e53ce 100644 --- a/gcc/tree-if-conv.c +++ b/gcc/tree-if-conv.c @@ -1105,7 +1105,7 @@ main_tree_if_conversion (void) loop_iterator li; struct loop *loop; - if (!current_loops) + if (number_of_loops () <= 1) return 0; FOR_EACH_LOOP (li, loop, 0) diff --git a/gcc/tree-scalar-evolution.c b/gcc/tree-scalar-evolution.c index eb45529e8f2..fd559388d65 100644 --- a/gcc/tree-scalar-evolution.c +++ b/gcc/tree-scalar-evolution.c @@ -2863,6 +2863,8 @@ scev_analysis (void) void scev_finalize (void) { + if (!scalar_evolution_info) + return; htab_delete (scalar_evolution_info); BITMAP_FREE (already_instantiated); scalar_evolution_info = NULL; @@ -2885,7 +2887,7 @@ scev_const_prop (void) unsigned i; loop_iterator li; - if (!current_loops) + if (number_of_loops () <= 1) return 0; FOR_EACH_BB (bb) diff --git a/gcc/tree-ssa-loop-ch.c b/gcc/tree-ssa-loop-ch.c index e2e272b2266..570ad268d2b 100644 --- a/gcc/tree-ssa-loop-ch.c +++ b/gcc/tree-ssa-loop-ch.c @@ -133,8 +133,11 @@ copy_loop_headers (void) loop_optimizer_init (LOOPS_HAVE_PREHEADERS | LOOPS_HAVE_SIMPLE_LATCHES); - if (!current_loops) - return 0; + if (number_of_loops () <= 1) + { + loop_optimizer_finalize (); + return 0; + } #ifdef ENABLE_CHECKING verify_loop_structure (); diff --git a/gcc/tree-ssa-loop-manip.c b/gcc/tree-ssa-loop-manip.c index 16b126dc457..a1d06911d6b 100644 --- a/gcc/tree-ssa-loop-manip.c +++ b/gcc/tree-ssa-loop-manip.c @@ -360,7 +360,8 @@ rewrite_into_loop_closed_ssa (bitmap changed_bbs, unsigned update_flag) unsigned i, old_num_ssa_names; bitmap names_to_rename; - if (!current_loops) + current_loops->state |= LOOP_CLOSED_SSA; + if (number_of_loops () <= 1) return; loop_exits = get_loops_exits (); @@ -389,8 +390,6 @@ rewrite_into_loop_closed_ssa (bitmap changed_bbs, unsigned update_flag) /* Fix up all the names found to be used outside their original loops. */ update_ssa (TODO_update_ssa); - - current_loops->state |= LOOP_CLOSED_SSA; } /* Check invariants of the loop closed ssa form for the USE in BB. */ @@ -432,7 +431,7 @@ verify_loop_closed_ssa (void) tree phi; unsigned i; - if (current_loops == NULL) + if (number_of_loops () <= 1) return; verify_ssa (false); diff --git a/gcc/tree-ssa-loop.c b/gcc/tree-ssa-loop.c index 895c9c25174..3a8f5db5ae7 100644 --- a/gcc/tree-ssa-loop.c +++ b/gcc/tree-ssa-loop.c @@ -45,9 +45,6 @@ tree_loop_optimizer_init (void) { loop_optimizer_init (LOOPS_NORMAL | LOOPS_HAVE_RECORDED_EXITS); - if (!current_loops) - return; - rewrite_into_loop_closed_ssa (NULL, TODO_update_ssa); } @@ -82,7 +79,7 @@ static unsigned int tree_ssa_loop_init (void) { tree_loop_optimizer_init (); - if (!current_loops) + if (number_of_loops () <= 1) return 0; scev_initialize (); @@ -111,7 +108,7 @@ struct tree_opt_pass pass_tree_loop_init = static unsigned int tree_ssa_loop_im (void) { - if (!current_loops) + if (number_of_loops () <= 1) return 0; tree_ssa_lim (); @@ -146,7 +143,7 @@ struct tree_opt_pass pass_lim = static unsigned int tree_ssa_loop_unswitch (void) { - if (!current_loops) + if (number_of_loops () <= 1) return 0; return tree_ssa_unswitch_loops (); @@ -223,7 +220,7 @@ tree_vectorize (void) static bool gate_tree_vectorize (void) { - return flag_tree_vectorize && current_loops; + return flag_tree_vectorize && number_of_loops () > 1; } struct tree_opt_pass pass_vectorize = @@ -249,7 +246,7 @@ struct tree_opt_pass pass_vectorize = static unsigned int tree_linear_transform (void) { - if (!current_loops) + if (number_of_loops () <= 1) return 0; linear_transform_loops (); @@ -285,7 +282,7 @@ struct tree_opt_pass pass_linear_transform = static unsigned int check_data_deps (void) { - if (!current_loops) + if (number_of_loops () <= 1) return 0; tree_check_data_deps (); @@ -320,7 +317,7 @@ struct tree_opt_pass pass_check_data_deps = static unsigned int tree_ssa_loop_ivcanon (void) { - if (!current_loops) + if (number_of_loops () <= 1) return 0; return canonicalize_induction_variables (); @@ -381,7 +378,7 @@ struct tree_opt_pass pass_scev_cprop = static unsigned int tree_ssa_empty_loop (void) { - if (!current_loops) + if (number_of_loops () <= 1) return 0; return remove_empty_loops (); @@ -410,7 +407,7 @@ struct tree_opt_pass pass_empty_loop = static unsigned int tree_ssa_loop_bounds (void) { - if (!current_loops) + if (number_of_loops () <= 1) return 0; estimate_numbers_of_iterations (); @@ -440,7 +437,7 @@ struct tree_opt_pass pass_record_bounds = static unsigned int tree_complete_unroll (void) { - if (!current_loops) + if (number_of_loops () <= 1) return 0; return tree_unroll_loops_completely (flag_unroll_loops @@ -477,7 +474,7 @@ struct tree_opt_pass pass_complete_unroll = static unsigned int tree_ssa_loop_prefetch (void) { - if (!current_loops) + if (number_of_loops () <= 1) return 0; return tree_ssa_prefetch_arrays (); @@ -511,7 +508,7 @@ struct tree_opt_pass pass_loop_prefetch = static unsigned int tree_ssa_loop_ivopts (void) { - if (!current_loops) + if (number_of_loops () <= 1) return 0; tree_ssa_iv_optimize (); @@ -547,9 +544,6 @@ struct tree_opt_pass pass_iv_optimize = static unsigned int tree_ssa_loop_done (void) { - if (!current_loops) - return 0; - free_numbers_of_iterations_estimates (); scev_finalize (); loop_optimizer_finalize (); diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c index 46332112cda..cdb6aa8e2e2 100644 --- a/gcc/tree-ssa-pre.c +++ b/gcc/tree-ssa-pre.c @@ -3801,7 +3801,7 @@ init_pre (bool do_fre) /* Deallocate data structures used by PRE. */ static void -fini_pre (bool do_fre) +fini_pre (void) { basic_block bb; unsigned int i; @@ -3849,7 +3849,7 @@ fini_pre (bool do_fre) && TREE_CODE (SSA_NAME_VALUE (name)) == VALUE_HANDLE) SSA_NAME_VALUE (name) = NULL; } - if (!do_fre && current_loops) + if (current_loops != NULL) loop_optimizer_finalize (); } @@ -3915,7 +3915,7 @@ execute_pre (bool do_fre) realify_fake_stores (); } - fini_pre (do_fre); + fini_pre (); } /* Gate and execute functions for PRE. */ diff --git a/gcc/tree-ssa-threadupdate.c b/gcc/tree-ssa-threadupdate.c index 6732f2e2899..815c84fb7b3 100644 --- a/gcc/tree-ssa-threadupdate.c +++ b/gcc/tree-ssa-threadupdate.c @@ -530,7 +530,7 @@ thread_block (basic_block bb, bool noloop_only) /* If we thread the latch of the loop to its exit, the loop ceases to exist. Make sure we do not restrict ourselves in order to preserve this loop. */ - if (current_loops && loop->header == bb) + if (loop->header == bb) { e = loop_latch_edge (loop); e2 = e->aux; @@ -552,7 +552,6 @@ thread_block (basic_block bb, bool noloop_only) /* If NOLOOP_ONLY is true, we only allow threading through the header of a loop to exit edges. */ || (noloop_only - && current_loops && bb == bb->loop_father->header && !loop_exit_edge_p (bb->loop_father, e2))) { @@ -1023,6 +1022,9 @@ thread_through_all_blocks (bool may_peel_loop_headers) struct loop *loop; loop_iterator li; + /* We must know about loops in order to preserve them. */ + gcc_assert (current_loops != NULL); + if (threaded_edges == NULL) return false; @@ -1046,16 +1048,13 @@ thread_through_all_blocks (bool may_peel_loop_headers) /* Then perform the threading through loop headers. We start with the innermost loop, so that the changes in cfg we perform won't affect further threading. */ - if (current_loops) + FOR_EACH_LOOP (li, loop, LI_FROM_INNERMOST) { - FOR_EACH_LOOP (li, loop, LI_FROM_INNERMOST) - { - if (!loop->header - || !bitmap_bit_p (threaded_blocks, loop->header->index)) - continue; + if (!loop->header + || !bitmap_bit_p (threaded_blocks, loop->header->index)) + continue; - retval |= thread_through_loop_header (loop, may_peel_loop_headers); - } + retval |= thread_through_loop_header (loop, may_peel_loop_headers); } if (retval) diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c index c32c907ee3a..b62b3e1d70b 100644 --- a/gcc/tree-vrp.c +++ b/gcc/tree-vrp.c @@ -5998,11 +5998,8 @@ static unsigned int execute_vrp (void) { loop_optimizer_init (LOOPS_NORMAL | LOOPS_HAVE_RECORDED_EXITS); - if (current_loops) - { - rewrite_into_loop_closed_ssa (NULL, TODO_update_ssa); - scev_initialize (); - } + rewrite_into_loop_closed_ssa (NULL, TODO_update_ssa); + scev_initialize (); insert_range_assertions (); @@ -6023,11 +6020,8 @@ execute_vrp (void) update_ssa (TODO_update_ssa); finalize_jump_threads (); - if (current_loops) - { - scev_finalize (); - loop_optimizer_finalize (); - } + scev_finalize (); + loop_optimizer_finalize (); return 0; } |