[llvm-dev] Should `AnalyzeLoadAvailability` return true after the lifetime of the load has ended?

Philip Reames via llvm-dev llvm-dev at lists.llvm.org
Thu Aug 22 11:47:07 PDT 2019


Sounds like it from your description.

On 8/21/19 9:04 PM, Shreyansh Chouhan via llvm-dev wrote:
> According to bug 20811, the GVN pass should replace a call to a load 
> with `undef` if the load has been made after the lifetime of a pointer 
> has ended. But, according to the documentation of 
> `AnalyzeLoadAvailability` function in the GVN class, the function 
> returns true if there is a value to load and populates the result with 
> the value. If the load is made immediately after the start of the 
> lifetime of a pointer, the function returns true and populates `Res` 
> with `undef`.
>
> If the load is made after the lifetime of a pointer has been over the 
> function considers it to have a clobbered instruction dependency and 
> returns false, not populating Res with anything.
>
> So in order to fix the issue, should I make the case of lifetime end 
> the same as lifetime start? i.e. return true and populate Res with 
> undef? That does seem to fix the issue, but I don't know if it is the 
> correct way of handling it.
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190822/4192dd27/attachment.html>


More information about the llvm-dev mailing list