re PR middle-end/38409 ([graphite] ICE : in canonicalize_loop_ivs, at tree-parloops.c:1384)
2008-12-12 Sebastian Pop <sebastian.pop@amd.com> PR middle-end/38409 * gcc.dg/graphite/pr38409.c: New. * graphite.c (nb_reductions_in_loop): Use simple_iv. From-SVN: r142716
This commit is contained in:
parent
0a280b3566
commit
0c6ca7f80a
4 changed files with 60 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
|||
2008-12-12 Sebastian Pop <sebastian.pop@amd.com>
|
||||
|
||||
PR middle-end/38409
|
||||
* graphite.c (nb_reductions_in_loop): Use simple_iv.
|
||||
|
||||
2008-12-12 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
|
||||
|
||||
* config/i386/x86intrin.h: New header file to support all x86
|
||||
|
|
|
@ -2119,13 +2119,14 @@ nb_reductions_in_loop (loop_p loop)
|
|||
{
|
||||
gimple phi = gsi_stmt (gsi);
|
||||
tree scev;
|
||||
affine_iv iv;
|
||||
|
||||
if (!is_gimple_reg (PHI_RESULT (phi)))
|
||||
continue;
|
||||
|
||||
scev = analyze_scalar_evolution (loop, PHI_RESULT (phi));
|
||||
scev = instantiate_parameters (loop, scev);
|
||||
if (chrec_contains_undetermined (scev))
|
||||
if (!simple_iv (loop, phi, PHI_RESULT (phi), &iv, true))
|
||||
res++;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2008-12-12 Sebastian Pop <sebastian.pop@amd.com>
|
||||
|
||||
PR middle-end/38409
|
||||
* gcc.dg/graphite/pr38409.c: New.
|
||||
|
||||
2008-12-12 Daniel Franke <franke.daniel@gmail.com>
|
||||
|
||||
PR fortran/36355
|
||||
|
|
48
gcc/testsuite/gcc.dg/graphite/pr38409.c
Normal file
48
gcc/testsuite/gcc.dg/graphite/pr38409.c
Normal file
|
@ -0,0 +1,48 @@
|
|||
/* { dg-options "-O2 -floop-block" } */
|
||||
|
||||
typedef struct test input ;
|
||||
struct test
|
||||
{
|
||||
int type ;
|
||||
int symflag ;
|
||||
};
|
||||
Chv_copyEntriesToVector ( input *chv,double *dvec)
|
||||
{
|
||||
double *entries ;
|
||||
int mm, nent;
|
||||
int first, i, k , stride ;
|
||||
if ( ((chv)->type == 1) )
|
||||
{
|
||||
for ( i = 0 ; i < 10 ; i++)
|
||||
{
|
||||
dvec[2*mm] = entries[2*k] ;
|
||||
k += stride ;
|
||||
stride -= 2 ;
|
||||
}
|
||||
}
|
||||
return(mm) ;
|
||||
}
|
||||
/* { dg-options "-O2 -floop-block" } */
|
||||
|
||||
typedef struct test input ;
|
||||
struct test
|
||||
{
|
||||
int type ;
|
||||
int symflag ;
|
||||
};
|
||||
Chv_copyEntriesToVector ( input *chv,double *dvec)
|
||||
{
|
||||
double *entries ;
|
||||
int mm, nent;
|
||||
int first, i, k , stride ;
|
||||
if ( ((chv)->type == 1) )
|
||||
{
|
||||
for ( i = 0 ; i < 10 ; i++)
|
||||
{
|
||||
dvec[2*mm] = entries[2*k] ;
|
||||
k += stride ;
|
||||
stride -= 2 ;
|
||||
}
|
||||
}
|
||||
return(mm) ;
|
||||
}
|
Loading…
Add table
Reference in a new issue