aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-tail-merge.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2014-06-06 07:38:07 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2014-06-06 07:38:07 +0000
commit726338f44ec906a894236b5cee6dcc7ab32fc30c (patch)
tree20e556c7d8b7c03079833b61519c222ba819f783 /gcc/tree-ssa-tail-merge.c
parentffa4602f4d54c80b978b3f6c8c376fbf75b72277 (diff)
downloadgcc-726338f44ec906a894236b5cee6dcc7ab32fc30c.zip
gcc-726338f44ec906a894236b5cee6dcc7ab32fc30c.tar.gz
gcc-726338f44ec906a894236b5cee6dcc7ab32fc30c.tar.bz2
cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
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
Diffstat (limited to 'gcc/tree-ssa-tail-merge.c')
-rw-r--r--gcc/tree-ssa-tail-merge.c13
1 files changed, 1 insertions, 12 deletions
diff --git a/gcc/tree-ssa-tail-merge.c b/gcc/tree-ssa-tail-merge.c
index f879871..20fbebf 100644
--- a/gcc/tree-ssa-tail-merge.c
+++ b/gcc/tree-ssa-tail-merge.c
@@ -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);