This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
gcc4.3.1 optimizations with restrict / -fargument-noalias / VLA
- From: Markus <markus dot stuermer at freenet dot de>
- To: gcc at gcc dot gnu dot org
- Date: Tue, 24 Jun 2008 22:09:05 +0200
- Subject: gcc4.3.1 optimizations with restrict / -fargument-noalias / VLA
I've been experimenting which optimizations gcc is willing to apply
depending on the kind of function arguments and compiler flags.
Perhaps someone can comment on what strange behavior I experienced:
If I understand the concept of C99's "restrict" qualifier for
function arguments correctly, it gives basically the same
"guarantees" to the compiler as -fargument-noalias-global.
However, gcc applies much more aggressive optimizations (for my test
kernels the new predictive commoning seems to be most benefical) for -
fargument-noalias, and seems to take no advantage of "restrict" in
C99 (or the __restrict__ extension, in C99 as well as in C++).
Quite strange, optimization seems to be at least as good for C99's
VLAs, even without restrict and without -fargument-noalias. I don't
have the C99 standard to read that up, but could not find a hint on
the web that VLA arguments are forbidden to alias.
Am I overlooking something here? Why is "restrict" not useful in that
context (but -fargument-noalias is)? And why does it work for VLAs
without any of both?
Regards,
Markus