From b0b097b4dcb8d6b300e8c5f5101741dd1d9a2540 Mon Sep 17 00:00:00 2001 From: rguenth Date: Thu, 12 Apr 2012 10:13:22 +0000 Subject: [PATCH] 2012-04-12 Richard Guenther * tree-parloops.c (parallelize_loops): Also consult the upper bound for the number of iterations. * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise. (loop_prefetch_arrays): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186373 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 7 +++++++ gcc/tree-parloops.c | 9 ++++++--- gcc/tree-ssa-loop-prefetch.c | 4 +++- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d702e02..7891046 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,12 @@ 2012-04-12 Richard Guenther + * tree-parloops.c (parallelize_loops): Also consult the upper + bound for the number of iterations. + * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise. + (loop_prefetch_arrays): Likewise. + +2012-04-12 Richard Guenther + * cfgloop.h (estimated_loop_iterations_int): Ditch 'conservative' parameter. (max_stmt_executions_int): Likewise. diff --git a/gcc/tree-parloops.c b/gcc/tree-parloops.c index a7f4f90..af43ed0 100644 --- a/gcc/tree-parloops.c +++ b/gcc/tree-parloops.c @@ -2192,12 +2192,15 @@ parallelize_loops (void) header-copied loops correctly - see PR46886. */ || !do_while_loop_p (loop)) continue; + estimated = estimated_stmt_executions_int (loop); + if (estimated == -1) + estimated = max_stmt_executions_int (loop); /* FIXME: Bypass this check as graphite doesn't update the - count and frequency correctly now. */ + count and frequency correctly now. */ if (!flag_loop_parallelize_all - && ((estimated !=-1 - && estimated <= (HOST_WIDE_INT) n_threads * MIN_PER_THREAD) + && ((estimated != -1 + && estimated <= (HOST_WIDE_INT) n_threads * MIN_PER_THREAD) /* Do not bother with loops in cold areas. */ || optimize_loop_nest_for_size_p (loop))) continue; diff --git a/gcc/tree-ssa-loop-prefetch.c b/gcc/tree-ssa-loop-prefetch.c index eab1fff..19a6a22 100644 --- a/gcc/tree-ssa-loop-prefetch.c +++ b/gcc/tree-ssa-loop-prefetch.c @@ -1549,7 +1549,7 @@ determine_loop_nest_reuse (struct loop *loop, struct mem_ref_group *refs, aloop = VEC_index (loop_p, vloops, i); vol = estimated_stmt_executions_int (aloop); - if (vol < 0) + if (vol == -1) vol = expected_loop_iterations (aloop); volume *= vol; } @@ -1801,6 +1801,8 @@ loop_prefetch_arrays (struct loop *loop) ahead = (PREFETCH_LATENCY + time - 1) / time; est_niter = estimated_stmt_executions_int (loop); + if (est_niter == -1) + est_niter = max_stmt_executions_int (loop); /* Prefetching is not likely to be profitable if the trip count to ahead ratio is too small. */ -- 2.7.4