<div dir="ltr">If this is supported by LLVM for all platforms, I don't see a good reason to restrict it to just OpenCL. Any hardware might have a barrier instruction, and if it does, we'd want the noduplicate behavior there.</div>
<div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Nov 20, 2013 at 3:06 PM, Marcello Maggioni <span dir="ltr"><<a href="mailto:marcello@codeplay.com" target="_blank">marcello@codeplay.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hmm, I don't feel confortable in commenting on this, because I don't have enough background myself on why the attribute has been added to LLVM. I know about the OpenCL use case just because I'm specifically working on that and the need for the NoDuplicate attribute popped out, but I'm not aware of possible usages of the same in the pure C/C++ world.<br>

<br>
I could immagine some hardware specific use scenario where in an embedded system using built-ins exercising some hardware features that have a similar functionality of a barrier (a synchronization primitive of some sort) this could be useful, but nothing else.<br>

<br>
Cheers,<br>
Marcello<div class="HOEnZb"><div class="h5"><br>
<br>
On 20/11/13 20:11, Aaron Ballman wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Wed, Nov 20, 2013 at 2:25 PM, Marcello Maggioni<br>
<<a href="mailto:marcello@codeplay.com" target="_blank">marcello@codeplay.com</a>> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Sorry, I missed the mail.<br>
<br>
Hmm, well, ideally if the call through the pointer is duplicated ,and the<br>
function call shouldn't be duplicated (like in some implementations of<br>
"barrier()" in OpenCL) the result might be wrong (in the case of a barrier<br>
the result is a dead-lock).<br>
Of course, OpenCL itself doesn't have this problem because it doesn't have<br>
function pointers ...<br>
</blockquote>
Which brings me to my round-about question -- should this be exposed<br>
as an OpenCL-only attribute in the same way we do with CUDA<br>
attributes? Eg) only expose a GNU spelling for it, and check in Sema<br>
whether lang options are for OpenCL and warn if not compiling for<br>
OpenCL.<br>
<br>
It sounds like this is intended for OpenCL users and it will have<br>
little utility to non-OpenCL users (feel free to correct me if I'm<br>
wrong on this account).<br>
<br>
~Aaron<br>
</blockquote>
<br>
______________________________<u></u>_________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu" target="_blank">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/<u></u>mailman/listinfo/cfe-commits</a><br>
</div></div></blockquote></div><br></div>