]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
authorRichard Biener <rguenther@suse.de>
Fri, 6 Jun 2014 07:38:07 +0000 (07:38 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Fri, 6 Jun 2014 07:38:07 +0000 (07:38 +0000)
2014-06-06  Richard Biener  <rguenther@suse.de>

* cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
(construct_init_block): Likewise.
(construct_exit_block): Likewise.
(pass_expand::execute): Likewise.
* graphite.c (graphite_transforms): Replace check for current_loops
with a check for > 1 loops.
(pass_graphite_transforms::execute): Adjust.
* ipa-split.c (split_function): Remove check for current_loops.
* omp-low.c (expand_parallel_call): Likewise.
(expand_omp_for_init_counts): Likewise.
(extract_omp_for_update_vars): Likewise.
(expand_omp_for_generic): Likewise.
(expand_omp_sections): Likewise.
(expand_omp_target): Likewise.
* tracer.c (tail_duplicate): Likewise.
(pass_tracer::execute): Likewise.
* trans-mem.c (expand_transaction): Likewise.
* tree-complex.c (expand_complex_div_wide): Likewise.
* tree-eh.c (lower_resx): Likewise.
(cleanup_empty_eh_merge_phis): Likewise.
* tree-predcom.c (run_tree_predictive_commoning): Replace check for
current_loops with a check for > 1 loops.
(pass_predcom::execute): Adjust.
* tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
* tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
* tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
* tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
* tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
* tree-switch-conversion.c (process_switch): Likewise.
* tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
* tree-vrp.c (vrp_visit_phi_node): Likewise.
(execute_vrp): Likewise.
* ubsan.c (ubsan_expand_null_ifn): Likewise.

From-SVN: r211306

19 files changed:
gcc/ChangeLog
gcc/cfgexpand.c
gcc/graphite.c
gcc/ipa-split.c
gcc/omp-low.c
gcc/tracer.c
gcc/trans-mem.c
gcc/tree-complex.c
gcc/tree-eh.c
gcc/tree-predcom.c
gcc/tree-scalar-evolution.c
gcc/tree-ssa-copy.c
gcc/tree-ssa-dom.c
gcc/tree-ssa-tail-merge.c
gcc/tree-ssa-threadupdate.c
gcc/tree-switch-conversion.c
gcc/tree-tailcall.c
gcc/tree-vrp.c
gcc/ubsan.c

index 77ac41642786d99afb611755652c35a8e3fa8b07..71179f5f546c01b1d8c3f877020cbda4e44c77ff 100644 (file)
@@ -1,3 +1,39 @@
+2014-06-06  Richard Biener  <rguenther@suse.de>
+
+       * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
+       (construct_init_block): Likewise.
+       (construct_exit_block): Likewise.
+       (pass_expand::execute): Likewise.
+       * graphite.c (graphite_transforms): Replace check for current_loops
+       with a check for > 1 loops.
+       (pass_graphite_transforms::execute): Adjust.
+       * ipa-split.c (split_function): Remove check for current_loops.
+       * omp-low.c (expand_parallel_call): Likewise.
+       (expand_omp_for_init_counts): Likewise.
+       (extract_omp_for_update_vars): Likewise.
+       (expand_omp_for_generic): Likewise.
+       (expand_omp_sections): Likewise.
+       (expand_omp_target): Likewise.
+       * tracer.c (tail_duplicate): Likewise.
+       (pass_tracer::execute): Likewise.
+       * trans-mem.c (expand_transaction): Likewise.
+       * tree-complex.c (expand_complex_div_wide): Likewise.
+       * tree-eh.c (lower_resx): Likewise.
+       (cleanup_empty_eh_merge_phis): Likewise.
+       * tree-predcom.c (run_tree_predictive_commoning): Replace check for
+       current_loops with a check for > 1 loops.
+       (pass_predcom::execute): Adjust.
+       * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
+       * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
+       * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
+       * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
+       * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
+       * tree-switch-conversion.c (process_switch): Likewise.
+       * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
+       * tree-vrp.c (vrp_visit_phi_node): Likewise.
+       (execute_vrp): Likewise.
+       * ubsan.c (ubsan_expand_null_ifn): Likewise.
+
 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
 
        * rtl.h (insn_location): Declare.
index e161cb76f2e62f78d0b3b9ce85c1483f56fa75d0..e8cd87f1c47eab64010621ba2a23c26bc2fa1be3 100644 (file)
@@ -2170,8 +2170,7 @@ expand_gimple_cond (basic_block bb, gimple stmt)
   false_edge->flags |= EDGE_FALLTHRU;
   new_bb->count = false_edge->count;
   new_bb->frequency = EDGE_FREQUENCY (false_edge);
-  if (current_loops && bb->loop_father)
-    add_bb_to_loop (new_bb, bb->loop_father);
+  add_bb_to_loop (new_bb, bb->loop_father);
   new_edge = make_edge (new_bb, dest, 0);
   new_edge->probability = REG_BR_PROB_BASE;
   new_edge->count = new_bb->count;
@@ -5273,8 +5272,7 @@ construct_init_block (void)
                                   ENTRY_BLOCK_PTR_FOR_FN (cfun));
   init_block->frequency = ENTRY_BLOCK_PTR_FOR_FN (cfun)->frequency;
   init_block->count = ENTRY_BLOCK_PTR_FOR_FN (cfun)->count;
-  if (current_loops && ENTRY_BLOCK_PTR_FOR_FN (cfun)->loop_father)
-    add_bb_to_loop (init_block, ENTRY_BLOCK_PTR_FOR_FN (cfun)->loop_father);
+  add_bb_to_loop (init_block, ENTRY_BLOCK_PTR_FOR_FN (cfun)->loop_father);
   if (e)
     {
       first_block = e->dest;
@@ -5352,8 +5350,7 @@ construct_exit_block (void)
   exit_block = create_basic_block (NEXT_INSN (head), end, prev_bb);
   exit_block->frequency = EXIT_BLOCK_PTR_FOR_FN (cfun)->frequency;
   exit_block->count = EXIT_BLOCK_PTR_FOR_FN (cfun)->count;
-  if (current_loops && EXIT_BLOCK_PTR_FOR_FN (cfun)->loop_father)
-    add_bb_to_loop (exit_block, EXIT_BLOCK_PTR_FOR_FN (cfun)->loop_father);
+  add_bb_to_loop (exit_block, EXIT_BLOCK_PTR_FOR_FN (cfun)->loop_father);
 
   ix = 0;
   while (ix < EDGE_COUNT (EXIT_BLOCK_PTR_FOR_FN (cfun)->preds))
@@ -5815,8 +5812,7 @@ pass_expand::execute (function *fun)
   timevar_push (TV_POST_EXPAND);
   /* We are no longer in SSA form.  */
   fun->gimple_df->in_ssa_p = false;
-  if (current_loops)
-    loops_state_clear (LOOP_CLOSED_SSA);
+  loops_state_clear (LOOP_CLOSED_SSA);
 
   /* Expansion is used by optimization passes too, set maybe_hot_insn_p
      conservatively to true until they are all profile aware.  */
index 2e1f439ef9e19dfa6b11aa9bc140889c8fbd297c..eedda4cf1d3eab2543c785078a8d0190b0e1e33f 100644 (file)
@@ -324,9 +324,9 @@ graphite_transform_loops (void)
 
 
 static unsigned int
-graphite_transforms (void)
+graphite_transforms (struct function *fun)
 {
-  if (!current_loops)
+  if (number_of_loops (fun) <= 1)
     return 0;
 
   graphite_transform_loops ();
@@ -411,7 +411,7 @@ public:
 
   /* opt_pass methods: */
   virtual bool gate (function *) { return gate_graphite_transforms (); }
-  virtual unsigned int execute (function *) { return graphite_transforms (); }
+  virtual unsigned int execute (function *fun) { return graphite_transforms (fun); }
 
 }; // class pass_graphite_transforms
 
index bd1c08624f91f00cdc895bf477a7ba3125b915a0..bfcd43e496e2564b726e729c1938d698158787ba 100644 (file)
@@ -1177,8 +1177,7 @@ split_function (struct split_point *split_point)
       e = make_edge (new_return_bb, EXIT_BLOCK_PTR_FOR_FN (cfun), 0);
       e->probability = REG_BR_PROB_BASE;
       e->count = new_return_bb->count;
-      if (current_loops)
-       add_bb_to_loop (new_return_bb, current_loops->tree_root);
+      add_bb_to_loop (new_return_bb, current_loops->tree_root);
       bitmap_set_bit (split_point->split_bbs, new_return_bb->index);
     }
   /* When we pass around the value, use existing return block.  */
index 129d513d12c7917b3b5294d0cddb559ed596a424..0f400b0e3af578c5b5efb2000cc76a54b4b45218 100644 (file)
@@ -4297,11 +4297,8 @@ expand_parallel_call (struct omp_region *region, basic_block bb,
 
          make_edge (cond_bb, then_bb, EDGE_TRUE_VALUE);
          make_edge (cond_bb, else_bb, EDGE_FALSE_VALUE);
-         if (current_loops)
-           {
-             add_bb_to_loop (then_bb, cond_bb->loop_father);
-             add_bb_to_loop (else_bb, cond_bb->loop_father);
-           }
+         add_bb_to_loop (then_bb, cond_bb->loop_father);
+         add_bb_to_loop (else_bb, cond_bb->loop_father);
          e_then = make_edge (then_bb, bb, EDGE_FALLTHRU);
          e_else = make_edge (else_bb, bb, EDGE_FALLTHRU);
 
@@ -5021,8 +5018,7 @@ expand_omp_for_init_counts (struct omp_for_data *fd, gimple_stmt_iterator *gsi,
            {
              first_zero_iter = i;
              zero_iter_bb = create_empty_bb (entry_bb);
-             if (current_loops)
-               add_bb_to_loop (zero_iter_bb, entry_bb->loop_father);
+             add_bb_to_loop (zero_iter_bb, entry_bb->loop_father);
              *gsi = gsi_after_labels (zero_iter_bb);
              stmt = gimple_build_assign (fd->loop.n2,
                                          build_zero_cst (type));
@@ -5205,8 +5201,7 @@ extract_omp_for_update_vars (struct omp_for_data *fd, basic_block cont_bb,
       tree vtype = TREE_TYPE (fd->loops[i].v);
 
       bb = create_empty_bb (last_bb);
-      if (current_loops)
-       add_bb_to_loop (bb, last_bb->loop_father);
+      add_bb_to_loop (bb, last_bb->loop_father);
       gsi = gsi_start_bb (bb);
 
       if (i < fd->collapse - 1)
@@ -5693,8 +5688,7 @@ expand_omp_for_generic (struct omp_region *region,
       remove_edge (e);
 
       make_edge (cont_bb, l2_bb, EDGE_FALSE_VALUE);
-      if (current_loops)
-       add_bb_to_loop (l2_bb, cont_bb->loop_father);
+      add_bb_to_loop (l2_bb, cont_bb->loop_father);
       e = find_edge (cont_bb, l1_bb);
       if (gimple_omp_for_combined_p (fd->for_stmt))
        {
@@ -7139,8 +7133,7 @@ expand_omp_sections (struct omp_region *region)
   t = gimple_block_label (default_bb);
   u = build_case_label (NULL, NULL, t);
   make_edge (l0_bb, default_bb, 0);
-  if (current_loops)
-    add_bb_to_loop (default_bb, current_loops->tree_root);
+  add_bb_to_loop (default_bb, current_loops->tree_root);
 
   stmt = gimple_build_switch (vmain, u, label_vec);
   gsi_insert_after (&switch_si, stmt, GSI_SAME_STMT);
@@ -8084,11 +8077,8 @@ expand_omp_target (struct omp_region *region)
 
       make_edge (cond_bb, then_bb, EDGE_TRUE_VALUE);
       make_edge (cond_bb, else_bb, EDGE_FALSE_VALUE);
-      if (current_loops)
-       {
-         add_bb_to_loop (then_bb, cond_bb->loop_father);
-         add_bb_to_loop (else_bb, cond_bb->loop_father);
-       }
+      add_bb_to_loop (then_bb, cond_bb->loop_father);
+      add_bb_to_loop (else_bb, cond_bb->loop_father);
       make_edge (then_bb, new_bb, EDGE_FALLTHRU);
       make_edge (else_bb, new_bb, EDGE_FALLTHRU);
 
index 16c6949dd1d04ac6f63774e6b891b8f72907d9ce..ae05879e9f8916f88552335b10aa1fd39488f1a0 100644 (file)
@@ -316,8 +316,7 @@ tail_duplicate (void)
                 of all do { } while loops.  Do not do that - it is
                 not profitable and it might create a loop with multiple
                 entries or at least rotate the loop.  */
-             && (!current_loops
-                 || bb2->loop_father->header != bb2))
+             && bb2->loop_father->header != bb2)
            {
              edge e;
              basic_block copy;
@@ -419,8 +418,7 @@ pass_tracer::execute (function *fun)
     {
       free_dominance_info (CDI_DOMINATORS);
       /* If we changed the CFG schedule loops for fixup by cleanup_cfg.  */
-      if (current_loops)
-       loops_state_set (LOOPS_NEED_FIXUP);
+      loops_state_set (LOOPS_NEED_FIXUP);
     }
 
   if (dump_file)
index 7c9f163e7dff73c5ac466c06c53974fd5631ebf3..b728d743d6e4a2a48b277a18d38d1ba069b39952 100644 (file)
@@ -2745,12 +2745,9 @@ expand_transaction (struct tm_region *region, void *data ATTRIBUTE_UNUSED)
       basic_block test_bb = create_empty_bb (transaction_bb);
       basic_block code_bb = create_empty_bb (test_bb);
       basic_block join_bb = create_empty_bb (code_bb);
-      if (current_loops && transaction_bb->loop_father)
-       {
-         add_bb_to_loop (test_bb, transaction_bb->loop_father);
-         add_bb_to_loop (code_bb, transaction_bb->loop_father);
-         add_bb_to_loop (join_bb, transaction_bb->loop_father);
-       }
+      add_bb_to_loop (test_bb, transaction_bb->loop_father);
+      add_bb_to_loop (code_bb, transaction_bb->loop_father);
+      add_bb_to_loop (join_bb, transaction_bb->loop_father);
       if (region->restart_block == region->entry_block)
        region->restart_block = test_bb;
 
@@ -2791,8 +2788,7 @@ expand_transaction (struct tm_region *region, void *data ATTRIBUTE_UNUSED)
   if (abort_edge)
     {
       basic_block test_bb = create_empty_bb (transaction_bb);
-      if (current_loops && transaction_bb->loop_father)
-       add_bb_to_loop (test_bb, transaction_bb->loop_father);
+      add_bb_to_loop (test_bb, transaction_bb->loop_father);
       if (region->restart_block == region->entry_block)
        region->restart_block = test_bb;
 
@@ -2834,8 +2830,7 @@ expand_transaction (struct tm_region *region, void *data ATTRIBUTE_UNUSED)
   if (inst_edge && uninst_edge)
     {
       basic_block test_bb = create_empty_bb (transaction_bb);
-      if (current_loops && transaction_bb->loop_father)
-       add_bb_to_loop (test_bb, transaction_bb->loop_father);
+      add_bb_to_loop (test_bb, transaction_bb->loop_father);
       if (region->restart_block == region->entry_block)
        region->restart_block = test_bb;
 
@@ -2886,8 +2881,7 @@ expand_transaction (struct tm_region *region, void *data ATTRIBUTE_UNUSED)
     {
       basic_block empty_bb = create_empty_bb (transaction_bb);
       region->restart_block = empty_bb;
-      if (current_loops && transaction_bb->loop_father)
-       add_bb_to_loop (empty_bb, transaction_bb->loop_father);
+      add_bb_to_loop (empty_bb, transaction_bb->loop_father);
 
       redirect_edge_pred (fallthru_edge, empty_bb);
       make_edge (transaction_bb, empty_bb, EDGE_FALLTHRU);
index cf542fd230c943a77ec57b620f9ce66a62585ff6..eefb952d5bbba56efcd2411564d03927b178c40d 100644 (file)
@@ -1162,11 +1162,8 @@ expand_complex_div_wide (gimple_stmt_iterator *gsi, tree inner_type,
       make_edge (bb_cond, bb_false, EDGE_FALSE_VALUE);
       make_edge (bb_true, bb_join, EDGE_FALLTHRU);
       make_edge (bb_false, bb_join, EDGE_FALLTHRU);
-      if (current_loops)
-       {
-         add_bb_to_loop (bb_true, bb_cond->loop_father);
-         add_bb_to_loop (bb_false, bb_cond->loop_father);
-       }
+      add_bb_to_loop (bb_true, bb_cond->loop_father);
+      add_bb_to_loop (bb_false, bb_cond->loop_father);
 
       /* Update dominance info.  Note that bb_join's data was
          updated by split_block.  */
index db02cbdb1b577d1809df7a3313013bf8102a7223..9f8408d71d36e892e66400d97a8253082d583b99 100644 (file)
@@ -3212,8 +3212,7 @@ lower_resx (basic_block bb, gimple stmt, struct pointer_map_t *mnt_map)
              gimple_stmt_iterator gsi2;
 
              new_bb = create_empty_bb (bb);
-             if (current_loops)
-               add_bb_to_loop (new_bb, bb->loop_father);
+             add_bb_to_loop (new_bb, bb->loop_father);
              lab = gimple_block_label (new_bb);
              gsi2 = gsi_start_bb (new_bb);
 
@@ -4210,8 +4209,7 @@ cleanup_empty_eh_merge_phis (basic_block new_bb, basic_block old_bb,
           we may have created a loop with multiple latches.
           All of this isn't easily fixed thus cancel the affected loop
           and mark the other loop as possibly having multiple latches.  */
-       if (current_loops
-           && e->dest == e->dest->loop_father->header)
+       if (e->dest == e->dest->loop_father->header)
          {
            e->dest->loop_father->header = NULL;
            e->dest->loop_father->latch = NULL;
index 2cb47db4e5186315cbd47138851c739a5ad1fa4b..a9a004e3f7ee926e4eb239df85feabb38d1343c3 100644 (file)
@@ -2565,9 +2565,9 @@ tree_predictive_commoning (void)
 /* Predictive commoning Pass.  */
 
 static unsigned
-run_tree_predictive_commoning (void)
+run_tree_predictive_commoning (struct function *fun)
 {
-  if (!current_loops)
+  if (number_of_loops (fun) <= 1)
     return 0;
 
   return tree_predictive_commoning ();
@@ -2598,9 +2598,9 @@ public:
 
   /* opt_pass methods: */
   virtual bool gate (function *) { return flag_predictive_commoning != 0; }
-  virtual unsigned int execute (function *)
+  virtual unsigned int execute (function *fun)
     {
-      return run_tree_predictive_commoning ();
+      return run_tree_predictive_commoning (fun);
     }
 
 }; // class pass_predcom
index 44758556f9bd1ebd083b758d689848ef663b1152..3890f958aac3eb28e36c024abd4103999435727f 100644 (file)
@@ -3197,9 +3197,6 @@ scev_reset (void)
 
   scev_reset_htab ();
 
-  if (!current_loops)
-    return;
-
   FOR_EACH_LOOP (loop, 0)
     {
       loop->nb_iterations = NULL_TREE;
index 0c1421666bb1a320db58877eb4220acb00b5878d..e0ed63f0a44e922aa791e42c3fd0203f8ea2fb20 100644 (file)
@@ -406,8 +406,7 @@ copy_prop_visit_phi_node (gimple phi)
         ???  The value will be always loop invariant.
         In loop-closed SSA form do not copy-propagate through
         PHI nodes in blocks with a loop exit edge predecessor.  */
-      if (current_loops
-         && TREE_CODE (arg_value) == SSA_NAME
+      if (TREE_CODE (arg_value) == SSA_NAME
          && (loop_depth_of_name (arg_value) > loop_depth_of_name (lhs)
              || (loops_state_satisfies_p (LOOP_CLOSED_SSA)
                  && loop_exit_edge_p (e->src->loop_father, e))))
index c980dfd85e61e97922d11ab2264d7a7de480fc2f..b7ec05b624ccf131426d97614657ad29f5cd6b24 100644 (file)
@@ -3128,8 +3128,7 @@ pass_phi_only_cprop::execute (function *fun)
     {
       free_dominance_info (CDI_DOMINATORS);
       /* If we changed the CFG schedule loops for fixup by cfgcleanup.  */
-      if (current_loops)
-       loops_state_set (LOOPS_NEED_FIXUP);
+      loops_state_set (LOOPS_NEED_FIXUP);
     }
 
   /* Propagation of const and copies may make some EH edges dead.  Purge
index f879871c7f0247eed7b1853e5e7a41b5e8e05ac5..20fbebf35d0be19029d0f972264074389b64a0ad 100644 (file)
@@ -1656,18 +1656,7 @@ tail_merge_optimize (unsigned int todo)
   int max_iterations = PARAM_VALUE (PARAM_MAX_TAIL_MERGE_ITERATIONS);
 
   if (!flag_tree_tail_merge
-      || max_iterations == 0
-      /* We try to be conservative with respect to loop structure, since:
-        - the cases where tail-merging could both affect loop structure and be
-          beneficial are rare,
-        - it prevents us from having to fixup the loops using
-          loops_state_set (LOOPS_NEED_FIXUP), and
-        - keeping loop structure may allow us to simplify the pass.
-        In order to be conservative, we need loop information.  In rare cases
-        (about 7 test-cases in the g++ testsuite) there is none (because
-        loop_optimizer_finalize has been called before tail-merge, and
-        PROP_loops is not set), so we bail out.  */
-      || current_loops == NULL)
+      || max_iterations == 0)
     return 0;
 
   timevar_push (TV_TREE_TAIL_MERGE);
index 0a24a5cc0ec690c97f22686358c5c3186be0dd00..fa31613d1adae003d61fbf8c6e0a639c9f23b29a 100644 (file)
@@ -1707,9 +1707,6 @@ thread_through_all_blocks (bool may_peel_loop_headers)
   bitmap threaded_blocks;
   struct loop *loop;
 
-  /* We must know about loops in order to preserve them.  */
-  gcc_assert (current_loops != NULL);
-
   if (!paths.exists ())
     return false;
 
index 3651120d0e19a3ee53b2946e8cc9a65e2bcbc5c4..9789b619ee24690718754065fb920ec40349b8bc 100644 (file)
@@ -1370,8 +1370,7 @@ process_switch (gimple swtch)
            fputs ("  expanding as bit test is preferable\n", dump_file);
          emit_case_bit_tests (swtch, info.index_expr,
                               info.range_min, info.range_size);
-         if (current_loops)
-           loops_state_set (LOOPS_NEED_FIXUP);
+         loops_state_set (LOOPS_NEED_FIXUP);
          return NULL;
        }
 
index f7beaefd76d461770a0a0b8091483fe5199fee89..6f6c758c356bdf6cbe94a125002a576b010dcb7f 100644 (file)
@@ -1059,8 +1059,7 @@ tree_optimize_tail_calls_1 (bool opt_tailcalls)
   if (changed)
     {
       /* We may have created new loops.  Make them magically appear.  */
-      if (current_loops)
-       loops_state_set (LOOPS_NEED_FIXUP);
+      loops_state_set (LOOPS_NEED_FIXUP);
       free_dominance_info (CDI_DOMINATORS);
     }
 
index 034fa0720d2e7fafcef84bc7e0b0c6d6793a20fe..428e622a21748b439fba69590464200242efa46c 100644 (file)
@@ -8383,7 +8383,6 @@ vrp_visit_phi_node (gimple phi)
         PHI node SCEV may known more about its value-range.  */
       if ((cmp_min > 0 || cmp_min < 0
           || cmp_max < 0 || cmp_max > 0)
-         && current_loops
          && (l = loop_containing_stmt (phi))
          && l->header == gimple_bb (phi))
        adjust_range_with_scev (&vr_result, l, phi, lhs);
@@ -9784,8 +9783,7 @@ execute_vrp (void)
   if (to_remove_edges.length () > 0)
     {
       free_dominance_info (CDI_DOMINATORS);
-      if (current_loops)
-       loops_state_set (LOOPS_NEED_FIXUP);
+      loops_state_set (LOOPS_NEED_FIXUP);
     }
 
   to_remove_edges.release ();
index 4de6d6e8ae3acd9fec6cc06caa45e92b4e419829..5a8a4479404709d7fb866d78e0b0e4298c1d3bb9 100644 (file)
@@ -571,11 +571,8 @@ ubsan_expand_null_ifn (gimple_stmt_iterator gsi)
   basic_block cond_bb = e->src;
   basic_block fallthru_bb = e->dest;
   basic_block then_bb = create_empty_bb (cond_bb);
-  if (current_loops)
-    {
-      add_bb_to_loop (then_bb, cond_bb->loop_father);
-      loops_state_set (LOOPS_NEED_FIXUP);
-    }
+  add_bb_to_loop (then_bb, cond_bb->loop_father);
+  loops_state_set (LOOPS_NEED_FIXUP);
 
   /* Make an edge coming from the 'cond block' into the 'then block';
      this edge is unlikely taken, so set up the probability accordingly.  */