[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