Limit non-constant step prefetching only to the innermost loops.

2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>

	* tree-ssa-loop-prefetch.c (gather_memory_references_ref):
	Do not the gather memory reference in the outer loop if the step
	is not a constant.

From-SVN: r160515
This commit is contained in:
Changpeng Fang 2010-06-09 22:56:08 +00:00 committed by Sebastian Pop
parent f7963a7ce7
commit 508141355c
2 changed files with 10 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2010-06-09 Changpeng Fang <changpeng.fang@amd.com>
* tree-ssa-loop-prefetch.c (gather_memory_references_ref):
Do not the gather memory reference in the outer loop if the step
is not a constant.
2010-06-09 Changpeng Fang <changpeng.fang@amd.com>
* tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :

View File

@ -513,6 +513,10 @@ gather_memory_references_ref (struct loop *loop, struct mem_ref_group **refs,
if (step == NULL_TREE)
return false;
/* Limit non-constant step prefetching only to the innermost loops. */
if (!cst_and_fits_in_hwi (step) && loop->inner != NULL)
return false;
/* Now we know that REF = &BASE + STEP * iter + DELTA, where DELTA and STEP
are integer constants. */
agrp = find_or_create_group (refs, base, step);