tree-parloops.c (parallelize_loops): Also consult the upper bound for the number of iterations.
2012-04-12 Richard Guenther <rguenther@suse.de> * 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. From-SVN: r186373
This commit is contained in:
parent
652c4c71a1
commit
e5b332cdb8
@ -1,3 +1,10 @@
|
||||
2012-04-12 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
* 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 <rguenther@suse.de>
|
||||
|
||||
* cfgloop.h (estimated_loop_iterations_int): Ditch
|
||||
|
@ -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;
|
||||
|
@ -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. */
|
||||
|
Loading…
Reference in New Issue
Block a user