[PATCH] D39781: [GVNHoist] Fix: PR35222 gvn-hoist incorrectly erases load

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 8 11:35:36 PST 2017


efriedma added inline comments.


================
Comment at: lib/Transforms/Scalar/GVNHoist.cpp:802
+          if (DT->dominates(IDFB, V[i]->getParent()) && // Ignore spurious PDFs.
+              LInfo->getLoopFor(IDFB) == LInfo->getLoopFor(B)) {
             OutValue[IDFB].push_back(C);
----------------
efriedma wrote:
> I haven't reviewed in detail, but I'm skeptical this check actually does the right thing in general.  A "Loop*" is specifically a loop with a single entry point, so this check won't handle irreducible control flow correctly.
Looking a little more, it might not be relevant... I'm not following the algorithm for insertion points, and I don't really have time to dig deeper, so please ignore me. :)


https://reviews.llvm.org/D39781





More information about the llvm-commits mailing list