re PR tree-optimization/54674 (ICE in build2_stat, at tree.c:3835)

2012-09-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/54674
	* gimple-ssa-strength-reduction.c (analyze_increments): Don't
	introduce a multiplication with a pointer operand.

From-SVN: r191765
This commit is contained in:
Bill Schmidt 2012-09-26 16:49:32 +00:00 committed by William Schmidt
parent 5bfed9a91f
commit 502514254f
2 changed files with 17 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2012-09-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR tree-optimization/54674
* gimple-ssa-strength-reduction.c (analyze_increments): Don't
introduce a multiplication with a pointer operand.
2012-09-26 Georg-Johann Lay <avr@gjlay.de>
PR middle-end/54635

View File

@ -2028,6 +2028,17 @@ analyze_increments (slsr_cand_t first_dep, enum machine_mode mode, bool speed)
incr_vec[i].cost = COST_INFINITE;
/* If we need to add an initializer, make sure we don't introduce
a multiply by a pointer type, which can happen in certain cast
scenarios. FIXME: When cleaning up these cast issues, we can
afford to introduce the multiply provided we cast out to an
unsigned int of appropriate size. */
else if (!incr_vec[i].initializer
&& TREE_CODE (first_dep->stride) != INTEGER_CST
&& POINTER_TYPE_P (TREE_TYPE (first_dep->stride)))
incr_vec[i].cost = COST_INFINITE;
/* For any other increment, if this is a multiply candidate, we
must introduce a temporary T and initialize it with
T_0 = stride * increment. When optimizing for speed, walk the