tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add the candidate with the stripped base if...

2008-08-04  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add
	the candidate with the stripped base if that base is different
	from the original base even for offset zero.

From-SVN: r138647
This commit is contained in:
Richard Guenther 2008-08-04 18:35:20 +00:00 committed by Richard Biener
parent 8f45dcf8be
commit 7eeef08ed8
2 changed files with 10 additions and 2 deletions

View file

@ -1,3 +1,9 @@
2008-08-04 Richard Guenther <rguenther@suse.de>
* tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add
the candidate with the stripped base if that base is different
from the original base even for offset zero.
2008-08-04 Richard Guenther <rguenther@suse.de>
PR middle-end/36691

View file

@ -2275,9 +2275,11 @@ add_iv_value_candidates (struct ivopts_data *data,
add_candidate (data, build_int_cst (basetype, 0),
iv->step, true, use);
/* Third, try removing the constant offset. */
/* Third, try removing the constant offset. Make sure to even
add a candidate for &a[0] vs. (T *)&a. */
base = strip_offset (iv->base, &offset);
if (offset)
if (offset
|| base != iv->base)
add_candidate (data, base, iv->step, false, use);
}