[PATCH] D21041: [GVN] PRE can't hoist loads across calls in general.

Daniel Berlin via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 6 14:25:19 PDT 2016


I'm very concerned about adding these loops everywhere that are N^2 and
require checking literally every instruction in every block to figure
things out.

Why are we not just adding edges to an exit block or something that the CFG
based algorithms will naturally see as a hoist blocker?


On Mon, Jun 6, 2016 at 2:19 PM, Eli Friedman <eli.friedman at gmail.com> wrote:

> eli.friedman created this revision.
> eli.friedman added reviewers: chandlerc, dberlin, reames, sanjoy.
> eli.friedman added a subscriber: llvm-commits.
>
> Issue exposed by noalias or more aggressive alias analysis.
>
> I'm not particularly happy with the extra loop this patch adds, but I'm
> not sure how to go about fixing it.
>
> I'm also not very happy with the use of mayHaveSideEffects; we only care
> specifically about control flow here.
>
> http://reviews.llvm.org/D21041
>
> Files:
>   lib/Transforms/Scalar/GVN.cpp
>   test/Transforms/GVN/pre-load.ll
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160606/9a3e357b/attachment.html>


More information about the llvm-commits mailing list