mirror of git://gcc.gnu.org/git/gcc.git
re PR tree-optimization/83963 ([graphite] ICE in merge_sese, at graphite-scop-detection.c:517)
2018-01-23 Richard Biener <rguenther@suse.de> PR tree-optimization/83963 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region): Properly terminate dominator walk when crossing the exit edge not when visiting its source block. * gfortran.dg/graphite/pr83963.f: New testcase. * gcc.dg/graphite/pr83963-2.c: Likewise. From-SVN: r256973
This commit is contained in:
parent
2e73a89bc9
commit
950d1cd9ba
|
|
@ -1,3 +1,10 @@
|
|||
2018-01-23 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/83963
|
||||
* graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
|
||||
Properly terminate dominator walk when crossing the exit edge not
|
||||
when visiting its source block.
|
||||
|
||||
2018-01-23 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/83918
|
||||
|
|
|
|||
|
|
@ -677,10 +677,10 @@ scop_detection::harmful_loop_in_region (sese_l scop) const
|
|||
if (!stmt_simple_for_scop_p (scop, gsi_stmt (gsi), bb))
|
||||
return true;
|
||||
|
||||
if (bb != exit_bb)
|
||||
for (basic_block dom = first_dom_son (CDI_DOMINATORS, bb);
|
||||
dom;
|
||||
dom = next_dom_son (CDI_DOMINATORS, dom))
|
||||
for (basic_block dom = first_dom_son (CDI_DOMINATORS, bb);
|
||||
dom;
|
||||
dom = next_dom_son (CDI_DOMINATORS, dom))
|
||||
if (dom != scop.exit->dest)
|
||||
worklist.safe_push (dom);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,9 @@
|
|||
2018-01-23 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/83963
|
||||
* gfortran.dg/graphite/pr83963.f: New testcase.
|
||||
* gcc.dg/graphite/pr83963-2.c: Likewise.
|
||||
|
||||
2018-01-23 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/83918
|
||||
|
|
|
|||
|
|
@ -0,0 +1,26 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-O -floop-nest-optimize" } */
|
||||
|
||||
int Chv_countBigEntries (int npivot, int pivotsizes[], int countflag,
|
||||
double droptol, int nD)
|
||||
{
|
||||
double absval ;
|
||||
double *entries ;
|
||||
int count;
|
||||
int ii, jj, kinc, kk, kstart, stride ;
|
||||
for ( ii = 0 ; ii < nD ; ii++ )
|
||||
{
|
||||
kk = kstart ;
|
||||
kinc = stride ;
|
||||
for ( jj = 0 ; jj < ii ; jj++ )
|
||||
{
|
||||
absval = __builtin_fabs(entries[kk]) ;
|
||||
if ( absval >= droptol )
|
||||
count++ ;
|
||||
kk += kinc ;
|
||||
kinc -= 2 ;
|
||||
}
|
||||
kstart-- ;
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
! { dg-do compile }
|
||||
! { dg-options "-O -floop-nest-optimize" }
|
||||
|
||||
SUBROUTINE DAVCI(NORB,NCOR,NCI,NA,NB,
|
||||
* CI,MAXP,MAXW1,
|
||||
* IHMCON,ISTRB,ISTRP,ISTAR,II)
|
||||
DIMENSION EC(MAXP,MAXP),IWRK1(2*MAXW1)
|
||||
EC(II,II) = 1.0D+00
|
||||
DO 1396 II=1,MAXP
|
||||
DO 1398 JJ=1,II-1
|
||||
EC(II,JJ) = 0.0D+00
|
||||
1398 CONTINUE
|
||||
1396 CONTINUE
|
||||
IF (NA.EQ.NB) THEN
|
||||
CALL RINAB0(SI1,SI2,NORB,NCOR,NCI,NA,NB,CI(1,IP),IACON1,IBCON1,
|
||||
* IWRK1,IHMCON,ISTRB,ISTRP,ISTAR)
|
||||
ENDIF
|
||||
END
|
||||
Loading…
Reference in New Issue