[LLVMdev] where should volatileness really live in the AA API?

Hal Finkel hfinkel at anl.gov
Thu Apr 16 19:12:57 PDT 2015


----- Original Message -----
> From: "Krzysztof Parzyszek" <kparzysz at codeaurora.org>
> To: llvmdev at cs.uiuc.edu
> Sent: Wednesday, April 1, 2015 5:39:15 AM
> Subject: Re: [LLVMdev] where should volatileness really live in the AA API?
> 
> On 3/31/2015 5:41 PM, Daniel Berlin wrote:
> >
> > class Location is theoretically about pointers and sizes, but right
> > now, our struct Location in AA already has metadata tags and other
> > *instruction* specific info that it grabs from the instruction you
> > pass to getLocation. IE it includes noalias data that it tries to
> > match against other instructions.
> > So we already have broken this abstraction to return better answers
> > :)
> 
> Is it using anything other than alias-related metadata?  My view is
> that
> volatileness does not belong in the alias analysis.  Noalias metadata
> helps directly with what AA does, so it makes sense to have it there.
> Volatileness, not so much.

I agree. volatileness and aliasing are orthogonal properties and I'd like not to conflate them. I also don't understand what they have to do with memory dependence. The fact that we promise not to change the number of volatile loads/stores to some location is only something relevant to a transformation that might change that (GVN in this case). Danny, can't we reasonably localize that logic to the transforming passes?

 -Hal

> 
> -Krzysztof
> 
> --
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
> hosted by The Linux Foundation
> _______________________________________________
> 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