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:
parent
5bfed9a91f
commit
502514254f
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user