[LLVMdev] Loads moving across barriers

Hal Finkel hfinkel at anl.gov
Sat Nov 9 04:29:33 PST 2013


----- Original Message -----
> 
> 
> > 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.

For intrinsics, it is the lack of any other tag that indicates unmodeled side effects (or arbitrary writes -- an argument could be made for separating these).

 -Hal

> 
> -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
> 

-- 
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory




More information about the llvm-dev mailing list