[llvm] r204200 - Expose "noduplicate" attribute as a property for intrinsics.
clattner at apple.com
Wed Mar 19 11:57:10 PDT 2014
On Mar 19, 2014, at 5:34 AM, Eli Bendersky <eliben at google.com> wrote:
> > The "noduplicate" function attribute exists to prevent certain optimizations
> > from duplicating calls to the function. This is important on platforms where
> > certain function call duplications are unsafe (for example execution barriers
> > for CUDA and OpenCL).
> > This patch makes it possible to specify intrinsics as "noduplicate" and
> > translates that to the appropriate function attribute.
> Hi Eli,
> Was this discussed somewhere? I missed the discussion on this, and this has non-obvious ramifications. Is it enough to teach code metrics that this isn't a duplicatable instruction, or does CUDA rely on stronger "no reorder" and "no merge" guarantees? How do you expect to implement these guarantees without scattering special cases throughout the optimizer?
> I think Owen and Chandler covered most of the background; just for completeness, the original discussion of the patch earlier this week is in http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20140317/209081.html - the email introducing the patch has a little bit more detail than the commit message. Perhaps I could have incorporated it into the commit message to make it clearer.
Got it, my confusion, thanks!
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-commits