re PR tree-optimization/31343 (ICE in data-refs dependence testing)
PR tree-optimization/31343 * tree-chrec.h (chrec_zerop): Moved before build_polynomial_chrec. (build_polynomial_chrec): Return a scalar when the evolution is zero. * testsuite/gcc.dg/vect/pr31343.c: New. From-SVN: r123708
This commit is contained in:
parent
0334147da1
commit
e9793dae58
@ -1,3 +1,10 @@
|
||||
2007-04-10 Sebastian Pop <sebastian.pop@inria.fr>
|
||||
|
||||
PR tree-optimization/31343
|
||||
* tree-chrec.h (chrec_zerop): Moved before build_polynomial_chrec.
|
||||
(build_polynomial_chrec): Return a scalar when the evolution is zero.
|
||||
* testsuite/gcc.dg/vect/pr31343.c: New.
|
||||
|
||||
2007-04-10 Eric Christopher <echristo@apple.com>
|
||||
|
||||
* config/i386/i386.h (X87_FLOAT_MODE_P): New.
|
||||
|
35
gcc/testsuite/gcc.dg/vect/pr31343.c
Normal file
35
gcc/testsuite/gcc.dg/vect/pr31343.c
Normal file
@ -0,0 +1,35 @@
|
||||
/* { dg-do compile } */
|
||||
|
||||
#define N 16
|
||||
|
||||
struct
|
||||
{
|
||||
unsigned int x;
|
||||
unsigned int y;
|
||||
} pS [100];
|
||||
|
||||
void
|
||||
main1 ()
|
||||
{
|
||||
int i, j;
|
||||
unsigned int ub[N] =
|
||||
{ 1, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45 };
|
||||
unsigned int uc[N] =
|
||||
{ 1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };
|
||||
unsigned int udiffx, udiffy;
|
||||
|
||||
for (i = 0; i < N; i++)
|
||||
{
|
||||
pS[i].x = 0;
|
||||
pS[i].y = 0;
|
||||
for (j = 0; j < N; j++)
|
||||
{
|
||||
udiffx = (ub[j] - uc[j]);
|
||||
udiffy = (ub[j] - uc[j]);
|
||||
pS[i].x = udiffx;
|
||||
pS[i].y = udiffy;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* { dg-final { cleanup-tree-dump "vect" } } */
|
@ -84,7 +84,19 @@ extern bool evolution_function_is_affine_multivariate_p (tree);
|
||||
extern bool evolution_function_is_univariate_p (tree);
|
||||
extern unsigned nb_vars_in_chrec (tree);
|
||||
|
||||
|
||||
/* Determines whether CHREC is equal to zero. */
|
||||
|
||||
static inline bool
|
||||
chrec_zerop (tree chrec)
|
||||
{
|
||||
if (chrec == NULL_TREE)
|
||||
return false;
|
||||
|
||||
if (TREE_CODE (chrec) == INTEGER_CST)
|
||||
return integer_zerop (chrec);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Build a polynomial chain of recurrence. */
|
||||
|
||||
@ -99,28 +111,13 @@ build_polynomial_chrec (unsigned loop_num,
|
||||
|
||||
gcc_assert (TREE_TYPE (left) == TREE_TYPE (right));
|
||||
|
||||
if (chrec_zerop (right))
|
||||
return left;
|
||||
|
||||
return build3 (POLYNOMIAL_CHREC, TREE_TYPE (left),
|
||||
build_int_cst (NULL_TREE, loop_num), left, right);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Observers. */
|
||||
|
||||
/* Determines whether CHREC is equal to zero. */
|
||||
|
||||
static inline bool
|
||||
chrec_zerop (tree chrec)
|
||||
{
|
||||
if (chrec == NULL_TREE)
|
||||
return false;
|
||||
|
||||
if (TREE_CODE (chrec) == INTEGER_CST)
|
||||
return integer_zerop (chrec);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Determines whether the expression CHREC is a constant. */
|
||||
|
||||
static inline bool
|
||||
|
Loading…
Reference in New Issue
Block a user