[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