[PATCH] D69442: [CVP] prevent propagating poison when substituting edge values into a phi (PR43802)
Nikita Popov via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Oct 25 14:02:52 PDT 2019
nikic added inline comments.
================
Comment at: llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp:201
+ if (auto *CommonInst = dyn_cast<Instruction>(CommonValue))
+ CommonInst->dropPoisonGeneratingFlags();
P->replaceAllUsesWith(CommonValue);
----------------
nikic wrote:
> I don't think this is sufficient, as poison might come from an earlier instruction CommonValue depends on.
After looking at the getEdgeValueLocal() implementation, it looks like this should be sufficient after all. The reasoning along the lines of "What value does Y=f(X) given X==C" is only performed for direct users of X.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D69442/new/
https://reviews.llvm.org/D69442
More information about the llvm-commits
mailing list