[llvm-dev] invariant.load metadata semantics
Daniel Berlin via llvm-dev
llvm-dev at lists.llvm.org
Thu Aug 25 13:49:36 PDT 2016
On Thu, Aug 25, 2016 at 1:46 PM, Caldarale, Charles R via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> > From: llvm-dev [mailto:llvm-dev-bounces at lists.llvm.org] On Behalf Of
> Hal Finkel via llvm-dev
> > Subject: Re: [llvm-dev] invariant.load metadata semantics
> > Alternatively, we might phrase this as: The optimizer may assume that
> all values loaded
> > from a location, where any of the loads are tagged with !invariant.load,
> are identical.
> This would seem to limit the usefulness of the invariant attribute. I
> would expect invariant to indicate that loads reachable from the one marked
> invariant are guaranteed to read the same value, but that prior ones are
Do you mean there is any path from the load to the new load?
If so, what about loop backedges?
This is one of the reasons they are explicitly marked.
> This would allow updates to be made to the location of interest up to the
> point of declared invariance, but not after.
This has the same problem.
load a !invariant.load
Legal or not if we can prove the loop iterates >1 time?
What does it mean?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev