diff options
author | Juneyoung Lee <aqjune@gmail.com> | 2020-08-26 04:50:29 +0900 |
---|---|---|
committer | Juneyoung Lee <aqjune@gmail.com> | 2020-08-27 02:54:48 +0900 |
commit | 684b43c0cfb1092a65c237b39d0662bfe0a2c97a (patch) | |
tree | 63ee9575e6d606b6688df6894616811b6848ff18 /llvm/lib/Analysis/ValueTracking.cpp | |
parent | 09288bcbf5f124a2b0e24a6b1f2d27b66dba9adf (diff) | |
download | llvm-684b43c0cfb1092a65c237b39d0662bfe0a2c97a.zip llvm-684b43c0cfb1092a65c237b39d0662bfe0a2c97a.tar.gz llvm-684b43c0cfb1092a65c237b39d0662bfe0a2c97a.tar.bz2 |
[IR] Add NoUndef attribute to Intrinsics.td
This patch adds NoUndef to Intrinsics.td.
The attribute is attached to llvm.assume's operand, because llvm.assume(undef)
is UB.
It is attached to pointer operands of several memory accessing intrinsics
as well.
This change makes ValueTracking::getGuaranteedNonPoisonOps' intrinsic check
unnecessary, so it is removed.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D86576
Diffstat (limited to 'llvm/lib/Analysis/ValueTracking.cpp')
-rw-r--r-- | llvm/lib/Analysis/ValueTracking.cpp | 10 |
1 files changed, 0 insertions, 10 deletions
diff --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp index 2835d2f..36998cd 100644 --- a/llvm/lib/Analysis/ValueTracking.cpp +++ b/llvm/lib/Analysis/ValueTracking.cpp @@ -5093,16 +5093,6 @@ void llvm::getGuaranteedNonPoisonOps(const Instruction *I, case Instruction::Call: case Instruction::Invoke: { - if (auto *II = dyn_cast<IntrinsicInst>(I)) { - switch (II->getIntrinsicID()) { - case Intrinsic::assume: - Operands.insert(II->getArgOperand(0)); - break; - default: - break; - } - } - const CallBase *CB = cast<CallBase>(I); if (CB->isIndirectCall()) Operands.insert(CB->getCalledOperand()); |