Define the TRIP_COUNT_TO_AHEAD_RATIO heuristic.

2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>

	* tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
	(is_loop_prefetching_profitable): Do not insert prefetches
	when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
	times the prefetch ahead distance.

From-SVN: r159163
This commit is contained in:
Changpeng Fang 2010-05-07 17:26:02 +00:00 committed by Sebastian Pop
parent ccacf0e193
commit 9bf4598b0d
2 changed files with 20 additions and 1 deletions

View File

@ -1,3 +1,10 @@
2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
* tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
(is_loop_prefetching_profitable): Do not insert prefetches
when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
times the prefetch ahead distance.
2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
* tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):

View File

@ -199,6 +199,18 @@ along with GCC; see the file COPYING3. If not see
#define FENCE_FOLLOWING_MOVNT NULL_TREE
#endif
/* It is not profitable to prefetch when the trip count is not at
least TRIP_COUNT_TO_AHEAD_RATIO times the prefetch ahead distance.
For example, in a loop with a prefetch ahead distance of 10,
supposing that TRIP_COUNT_TO_AHEAD_RATIO is equal to 4, it is
profitable to prefetch when the trip count is greater or equal to
40. In that case, 30 out of the 40 iterations will benefit from
prefetching. */
#ifndef TRIP_COUNT_TO_AHEAD_RATIO
#define TRIP_COUNT_TO_AHEAD_RATIO 4
#endif
/* The group of references between that reuse may occur. */
struct mem_ref_group
@ -1585,7 +1597,7 @@ is_loop_prefetching_profitable (unsigned ahead, HOST_WIDE_INT est_niter,
return insn_to_prefetch_ratio >= MIN_INSN_TO_PREFETCH_RATIO;
}
if (est_niter <= (HOST_WIDE_INT) ahead)
if (est_niter < (HOST_WIDE_INT) (TRIP_COUNT_TO_AHEAD_RATIO * ahead))
{
if (dump_file && (dump_flags & TDF_DETAILS))
fprintf (dump_file,