RFC: Add ADD_RESTRICT tree code
Tobias Burnus
burnus@net-b.de
Sun Mar 24 11:00:00 GMT 2013
Given that GCC is again in Stage 1, I would like to bring attention to
the following RFC patch.
To quote Richard in PR 45586:
"I believe the correct solution will involve implementing the proposal
for introducing explicit restrict tags and using that in the fortran
frontend (removing the restrict qualification work). See
http://gcc.gnu.org/ml/gcc-patches/2011-10/msg01011.html. "
The RFC patch was introduced with the words:
On October 12, 2011, Michael Matz wrote:
> this adds a mean to retain restrict information without relying on
> restrict casts. In the patch it's emitted by the gimplifier when it sees
> a norestrict->restrict cast (which from then on is useless), at which
> point also the tag of that restrict pointer is generated. That's later
> used by the aliasing machinery to associate it with a restrict tag uid.
>
> In particular it will be possible to associate pointers coming from
> different inline instance of the same function with the same restrict tag,
> and hence make them conflict.
I think such a patch is useful for C/C++, but it seems to be also the
best way to fix the tree-checking issues one runs into with Fortran
code, where a derived-type ("struct") declaration contains fields which
are allocatables ("restricted" pointers) but they loose their restricted
property if the type is used to declare a variable with TARGET
attribute. (For the issue in full glory, read the 93 comments in PR
fortran/45586.)
Tobias
More information about the Gcc-patches
mailing list