[LLVMdev] Loads moving across barriers
Hal Finkel
hfinkel at anl.gov
Fri Nov 8 18:32:54 PST 2013
----- 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?
-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