[patch, rfc] Make store motion use alias oracle

Victor Kaplansky VICTORK@il.ibm.com
Tue Jan 30 14:33:00 GMT 2007


> would make us replace "n" with a local variable, but not to move the
> invariants out of the loop).  I will try to prepare a patch that fixes
> these problems.

We have seen another case where alias oracle can help vectorizer and
provide significant improvement. Here is a simplified example:

  1 struct
  2 {
  3   int x;
  4   int y;
  5 } S[100];
  6
  7 int z[100];
  8
  9 void
 10 foo (void)
 11 {
 12   int i;
 13   int x, y;
 14
 15   S[5].x = 0;
 16   S[5].y = 0;
 17
 18   x = S[5].x;
 19   y = S[5].y;
 20
 21   x = x + z[0];
 22   y = y + z[0];
 23
 24   S[5].x = x;
 25   S[5].y = y;
 26
 27 }

If STORE_CCP can use extra aliasing info, it should be able
with help of DSE to get rid of stores and loads in lines 15-19.

Do you think your patch would/could cover this as well?  What is
the right way to deal with this?



More information about the Gcc-patches mailing list