loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int and get_max_loop_iterations_int.

* loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
	and get_max_loop_iterations_int.

From-SVN: r236509
This commit is contained in:
Jan Hubicka 2016-05-20 14:59:08 +02:00 committed by Jan Hubicka
parent 77c9d5b4e6
commit 216e83748d
2 changed files with 12 additions and 11 deletions

View file

@ -1,3 +1,8 @@
2016-05-20 Jan Hubicka <hubicka@ucw.cz>
* loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
and get_max_loop_iterations_int.
2016-05-20 Jan Hubicka <hubicka@ucw.cz>
* tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce

View file

@ -610,7 +610,8 @@ doloop_optimize (struct loop *loop)
widest_int iterations, iterations_max;
rtx_code_label *start_label;
rtx condition;
unsigned level, est_niter;
unsigned level;
HOST_WIDE_INT est_niter;
int max_cost;
struct niter_desc *desc;
unsigned word_mode_size;
@ -635,21 +636,16 @@ doloop_optimize (struct loop *loop)
}
mode = desc->mode;
est_niter = 3;
if (desc->const_iter)
est_niter = desc->niter;
/* If the estimate on number of iterations is reliable (comes from profile
feedback), use it. Do not use it normally, since the expected number
of iterations of an unrolled loop is 2. */
if (loop->header->count)
est_niter = expected_loop_iterations (loop);
est_niter = get_estimated_loop_iterations_int (loop);
if (est_niter == -1)
est_niter = get_max_loop_iterations_int (loop);
if (est_niter < 3)
if (est_niter >= 0 && est_niter < 3)
{
if (dump_file)
fprintf (dump_file,
"Doloop: Too few iterations (%u) to be profitable.\n",
est_niter);
(unsigned int)est_niter);
return false;
}