mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-01-11 02:14:38 +08:00
params.def (PARAM_MAX_ITERATIONS_COMPUTATION_COST): New.
* params.def (PARAM_MAX_ITERATIONS_COMPUTATION_COST): New. * loop-doloop.c (doloop_optimize): Use it to limit costs of expanding the number of iterations. From-SVN: r116966
This commit is contained in:
parent
21cc37194e
commit
45b9a14bd6
@ -1,3 +1,9 @@
|
||||
2005-09-15 Bernd Schmidt <bernd.schmidt@analog.com>
|
||||
|
||||
* params.def (PARAM_MAX_ITERATIONS_COMPUTATION_COST): New.
|
||||
* loop-doloop.c (doloop_optimize): Use it to limit costs of
|
||||
expanding the number of iterations.
|
||||
|
||||
2006-09-15 Kazu Hirata <kazu@codesourcery.com>
|
||||
|
||||
* doc/tm.texi (TARGET_FUNCTION_VALUE): Put @deftypefn all in
|
||||
|
@ -484,7 +484,7 @@ doloop_optimize (struct loop *loop)
|
||||
rtx iterations_max;
|
||||
rtx start_label;
|
||||
rtx condition;
|
||||
unsigned level, est_niter;
|
||||
unsigned level, est_niter, max_cost;
|
||||
struct niter_desc *desc;
|
||||
unsigned word_mode_size;
|
||||
unsigned HOST_WIDE_INT word_mode_max;
|
||||
@ -525,6 +525,17 @@ doloop_optimize (struct loop *loop)
|
||||
return false;
|
||||
}
|
||||
|
||||
max_cost
|
||||
= COSTS_N_INSNS (PARAM_VALUE (PARAM_MAX_ITERATIONS_COMPUTATION_COST));
|
||||
if (rtx_cost (desc->niter_expr, SET) > max_cost)
|
||||
{
|
||||
if (dump_file)
|
||||
fprintf (dump_file,
|
||||
"Doloop: number of iterations too costly to compute.\n",
|
||||
est_niter);
|
||||
return false;
|
||||
}
|
||||
|
||||
count = copy_rtx (desc->niter_expr);
|
||||
iterations = desc->const_iter ? desc->niter_expr : const0_rtx;
|
||||
iterations_max = GEN_INT (desc->niter_max);
|
||||
|
@ -292,6 +292,12 @@ DEFPARAM(PARAM_MAX_ITERATIONS_TO_TRACK,
|
||||
"max-iterations-to-track",
|
||||
"Bound on the number of iterations the brute force # of iterations analysis algorithm evaluates",
|
||||
1000, 0, 0)
|
||||
/* A cutoff to avoid costly computations of the number of iterations in
|
||||
the doloop transformation. */
|
||||
DEFPARAM(PARAM_MAX_ITERATIONS_COMPUTATION_COST,
|
||||
"max-iterations-computation-cost",
|
||||
"Bound on the cost of an expression to compute the number of iterations",
|
||||
10, 0, 0)
|
||||
|
||||
DEFPARAM(PARAM_MAX_SMS_LOOP_NUMBER,
|
||||
"max-sms-loop-number",
|
||||
|
Loading…
Reference in New Issue
Block a user