This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/33272] New: Compiler does not take advantage of restrict
- From: "mmitchel at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 31 Aug 2007 20:13:53 -0000
- Subject: [Bug middle-end/33272] New: Compiler does not take advantage of restrict
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
Compiling this test case with -O2 -std=c99:
void f(int *restrict r,
int a[restrict 16][16],
int b[restrict 16][16],
int i,
int j)
{
int x;
*r = 0;
for (x = 1; x < 16; ++x)
*r = *r + a[i][x] * b[x][j];
}
does not sink the store to "*r" outside of the loop; we end up writing to "*r"
on every loop iteration. We do sink the store with "-fargument-noalias" so
that is somehow stronger in this case than using "restrict". Despite other
hard problems with "restrict", it seems like the special case of "all pointer
arguments use restrict" should be equivalent to "-fargument-noalias is in
effect".
--
Summary: Compiler does not take advantage of restrict
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Keywords: missed-optimization
Severity: normal
Priority: P3
Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: mmitchel at gcc dot gnu dot org
GCC host triplet: i686-pc-linux-gnu
GCC target triplet: arm-none-linux-gnueabi
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33272