re PR middle-end/40281 (-fprefetch-loop-arrays: ICE: in initialize_matrix_A, at tree-data-ref.c:1887)
2009-11-18 Sebastian Pop <sebastian.pop@amd.com> PR middle-end/40281 * testsuite/gcc.dg/graphite/pr40281.c: New. * tree-scalar-evolution.c (instantiate_scev_poly): Base and stride evolutions should not variate in inner loops. From-SVN: r154641
This commit is contained in:
parent
12aec7316d
commit
4bf4e16939
@ -1,3 +1,11 @@
|
|||||||
|
2009-11-18 Sebastian Pop <sebastian.pop@amd.com>
|
||||||
|
|
||||||
|
PR middle-end/40281
|
||||||
|
* testsuite/gcc.dg/graphite/pr40281.c: New.
|
||||||
|
|
||||||
|
* tree-scalar-evolution.c (instantiate_scev_poly): Base and stride
|
||||||
|
evolutions should not variate in inner loops.
|
||||||
|
|
||||||
2009-11-18 Sebastian Pop <sebastian.pop@amd.com>
|
2009-11-18 Sebastian Pop <sebastian.pop@amd.com>
|
||||||
|
|
||||||
PR middle-end/42050
|
PR middle-end/42050
|
||||||
|
@ -2226,9 +2226,21 @@ instantiate_scev_poly (basic_block instantiate_below,
|
|||||||
if (CHREC_LEFT (chrec) != op0
|
if (CHREC_LEFT (chrec) != op0
|
||||||
|| CHREC_RIGHT (chrec) != op1)
|
|| CHREC_RIGHT (chrec) != op1)
|
||||||
{
|
{
|
||||||
|
unsigned var = CHREC_VARIABLE (chrec);
|
||||||
|
|
||||||
|
/* When the instantiated stride or base has an evolution in an
|
||||||
|
innermost loop, return chrec_dont_know, as this is not a
|
||||||
|
valid SCEV representation. In the reduced testcase for
|
||||||
|
PR40281 we would have {0, +, {1, +, 1}_2}_1 that has no
|
||||||
|
meaning. */
|
||||||
|
if ((tree_is_chrec (op0) && CHREC_VARIABLE (op0) > var)
|
||||||
|
|| (tree_is_chrec (op1) && CHREC_VARIABLE (op1) > var))
|
||||||
|
return chrec_dont_know;
|
||||||
|
|
||||||
op1 = chrec_convert_rhs (chrec_type (op0), op1, NULL);
|
op1 = chrec_convert_rhs (chrec_type (op0), op1, NULL);
|
||||||
chrec = build_polynomial_chrec (CHREC_VARIABLE (chrec), op0, op1);
|
chrec = build_polynomial_chrec (var, op0, op1);
|
||||||
}
|
}
|
||||||
|
|
||||||
return chrec;
|
return chrec;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user