[LLVMdev] Loads moving across barriers

Owen Anderson resistor at mac.com
Fri Nov 8 20:59:07 PST 2013



> On Nov 8, 2013, at 6:32 PM, Hal Finkel <hfinkel at anl.gov> wrote:
> 
> ----- Original Message -----
>> Hi Matt,
>> 
>> On Nov 8, 2013, at 1:14 PM, Matt Arsenault
>> <Matthew.Arsenault at amd.com> wrote:
>> 
>>> Both of these I think sort of went in the wrong direction and
>>> talked specifically about the semantics of the atomic instructions
>>> (fence in particular), which isn't the real question. Is noalias
>>> supposed to mean that no other thread can also have a copy of the
>>> pointer it also modifies? My guess at what was happening is that
>>> since the parameter is noalias, the assumption is there is no
>>> possible way for the side-effecting function to modify the
>>> pointer. The second thread brings up an ambiguity in the C spec
>>> about how restrict is supposed to be interpreted in the presense
>>> of multiple threads. OpenCL still has restrict, but unless this is
>>> supposed to work, it is pretty close to useless.
>> 
>> I checked the OpenCL specification, and it doesn’t give any clear
>> definition of restrict beyond implicitly importing what C99 says.
>> That said, I think it’s is pretty clearly undesirable behavior for
>> CL, even if it may (or may not) be technically permitted by the C
>> specification.  I’d be in favor of clarifying our definition of
>> noalias to disallow this transformation.
> 
> So we're specifically talking about intrinsics tagged as having unmodeled side effects? Or arbitrary functions?

We don't have such a tag for intrinsics to my knowledge.

-Owen


> -Hal
> 
>> 
>> —Owen
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
> 
> -- 
> Hal Finkel
> Assistant Computational Scientist
> Leadership Computing Facility
> Argonne National Laboratory




More information about the llvm-dev mailing list