This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [Patch, Fortran] CAF dep (1/3): PR62278 - improve dependency.c's gfc_check_dependency's check (missed-optimization)
- From: Paul Richard Thomas <paul dot richard dot thomas at gmail dot com>
- To: Tobias Burnus <burnus at net-b dot de>
- Cc: gcc-patches <gcc-patches at gcc dot gnu dot org>, gfortran <fortran at gcc dot gnu dot org>, Thomas Koenig <tkoenig at netcologne dot de>
- Date: Sat, 30 Aug 2014 13:54:52 +0200
- Subject: Re: [Patch, Fortran] CAF dep (1/3): PR62278 - improve dependency.c's gfc_check_dependency's check (missed-optimization)
- Authentication-results: sourceware.org; auth=none
- References: <53FE46CB dot 6030505 at net-b dot de>
Dear Tobias,
Given Dominques news that this fixes a golden oldie that drove me to
madness and PR60593 - OK for trunk, 4.8 and 4.9
Many thanks for the patch
Paul
On 27 August 2014 22:59, Tobias Burnus <burnus@net-b.de> wrote:
> The current gfc_check_dependency check always looked at the pointer
> attribute - and assumed the worst, if either the LHS or the RHS was true.
>
> Thus, it claimed that "a" and "b" alias for the following definition:
> integer, pointer :: p; integer :: a. However, as "a" has no target (or
> pointer) attribute, that's not possible. Additionally, "class(t) :: a" has
> internally the "pointer" attribute (but CLASS_DATA(sym)->attr.class_pointer
> == 0), however, in the Fortran sense, "a" is not a pointer and cannot alias.
>
> I do not have a good example for the test case, except for a similar one as
> above using "a[i] = p" and looking at the dump; but that requires patch 3/3
> of this series.
>
> Build and regtested on x86-64-gnu-linux. (I do get a failure for
> gfortran.dg/graphite/pr42393.f90, but only with -O1 -fgraphite-identity and
> also without the patch.)
>
> OK for the trunk?
>
> Tobias
--
The knack of flying is learning how to throw yourself at the ground and miss.
--Hitchhikers Guide to the Galaxy