[Bug middle-end/36013] [4.1/4.3/4.4 Regression] Wrong code involving restricted pointers to non-restricted pointers

jakub at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Tue May 6 22:56:00 GMT 2008

------- Comment #6 from jakub at gcc dot gnu dot org  2008-05-06 22:56 -------
Created an attachment (id=15588)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15588&action=view)

Patch I've bootstrapped/regtested on x86_64-linux.  Will you check this in, or
should I mail it to gcc-patches?

I've played with testcases like:

foo (int *__restrict p, int *__restrict q)
  int *r, *s, t;
  *p = 1;
  *q = 2;
  p[6] = 3;
  q[6] = 4;
  for (r = p, s = q, t = 0; r < p + 64; r++, s++)
      *r = 7;
      *s = 88;
      t += *r;
  return t;

and here neither tree nor RTL aliasing is ATM able to optimize the subsequent
read from *r out - while the accesses before the loop use different alias sets
(3 resp. 4), in the loop everything uses alias set 2, but that isn't a
regression introduced with this patch, so probably DECL_BASED_ON_RESTRICT_P
stuff needs more work, but that is unrelated to this bug.



More information about the Gcc-bugs mailing list