On Jun 25, 2007, at 8:57 AM, Zhou Sheng wrote:

Hi All,

Here is the llvm-gcc patch for PR1373. It makes llvm-gcc to emit noalias parameter attribute as well as noalias intrinsic. Note this patch is just for review. Please give me some suggestion to improve it. Thanks.


The patch looks good.  I'd suggest splitting it into two changes though:

First, introduce the parameter attribute. Your code to do this looks good, but please add support for REFERENCE_TYPE as well (for c++ restrict references). When this goes in, basicaa can be enhanced to use this info and we can get some idea how well this works.

As a second step, the noalias intrinsic can be added. This is more likely to disrupt code, and we'll have to closely monitor it when it goes it (we don't want it to block mem2reg etc). In practice, we'll want to add the intrinsic to llvm, then start updating important optimizations to see through it (e.g. mem2reg and scalarrepl), then turn it on in the front-end.

If you send a patch for just adding restrict support for arguments, that handles pointers and references, I'd be happy to check it in. Nice work!

-Chris
_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to