Commit 50251425 by Bill Schmidt Committed by William Schmidt

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
parent 5bfed9a9
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> 2012-09-26 Georg-Johann Lay <avr@gjlay.de>
PR middle-end/54635 PR middle-end/54635
......
...@@ -2028,6 +2028,17 @@ analyze_increments (slsr_cand_t first_dep, enum machine_mode mode, bool speed) ...@@ -2028,6 +2028,17 @@ analyze_increments (slsr_cand_t first_dep, enum machine_mode mode, bool speed)
incr_vec[i].cost = COST_INFINITE; 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 /* For any other increment, if this is a multiply candidate, we
must introduce a temporary T and initialize it with must introduce a temporary T and initialize it with
T_0 = stride * increment. When optimizing for speed, walk the T_0 = stride * increment. When optimizing for speed, walk the
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment