This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [Bug target/32457] [4.3 Regression] Complete program optimized away (i686, -ftree-vectorize)
- From: "Sebastian Pop" <sebpop at gmail dot com>
- To: gcc-bugzilla at gcc dot gnu dot org, "Daniel Berlin" <dberlin at dberlin dot org>, "GCC Patches" <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 27 Jun 2007 01:54:11 +0200
- Subject: Re: [Bug target/32457] [4.3 Regression] Complete program optimized away (i686, -ftree-vectorize)
- References: <bug-32457-13404@http.gcc.gnu.org/bugzilla/> <20070626163308.4851.qmail@sourceware.org> <cb9d34b20706261102r44a440a4l7e796cc5cb707e94@mail.gmail.com>
Hi,
I'm bootstrapping this patch on both amd64-linux and i686-linux.
The patch passed bootstrap and test on both machines with no new
regressions. I had to modify the checking line for the testcase, as I
used -fdump-vect-all-all to prepare the testcase, and when I checked
the vectorizer dump of the checker, it was only two lines long:
/home/pop/gcc/trunk/gcc/testsuite/gfortran.dg/vect/pr32457.f90:6:
note: not vectorized: can't determine dependence between
(*rbound_9(D))[D.137
7_8] and (*rbound_9(D))[D.1375_5]
/home/pop/gcc/trunk/gcc/testsuite/gfortran.dg/vect/pr32457.f90:4:
note: vectorized 0 loops in function.
So I just removed the check for the second pattern:
! { dg-final { scan-tree-dump-times "possible dependence between
data-refs" 1 "vect" } }
and the new version of the testcase is like this:
! { dg-do compile }
! { dg-require-effective-target vect_float }
SUBROUTINE KEEL(RBOUND)
REAL, DIMENSION(0:100) :: RBOUND
DO N = 1, NP1
RBOUND(N) = RBOUND(N-1) + 1
END DO
DO N = 1, NS
WRITE (16,'(I5)') SRAD(N)
END DO
END SUBROUTINE KEEL
! { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" } }
! { dg-final { cleanup-tree-dump "vect" } }
Sebastian