diff options
Diffstat (limited to 'llvm/lib/Analysis/ValueTracking.cpp')
-rw-r--r-- | llvm/lib/Analysis/ValueTracking.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp index 7c38c60..55fd419 100644 --- a/llvm/lib/Analysis/ValueTracking.cpp +++ b/llvm/lib/Analysis/ValueTracking.cpp @@ -5236,9 +5236,9 @@ static bool shiftAmountKnownInRange(const Value *ShiftAmount) { } static bool canCreateUndefOrPoison(const Operator *Op, bool PoisonOnly, - bool ConsiderFlags) { + bool ConsiderFlagsAndMetadata) { - if (ConsiderFlags && Op->hasPoisonGeneratingFlags()) + if (ConsiderFlagsAndMetadata && Op->hasPoisonGeneratingFlagsOrMetadata()) return true; unsigned Opcode = Op->getOpcode(); @@ -5386,12 +5386,15 @@ static bool canCreateUndefOrPoison(const Operator *Op, bool PoisonOnly, } } -bool llvm::canCreateUndefOrPoison(const Operator *Op, bool ConsiderFlags) { - return ::canCreateUndefOrPoison(Op, /*PoisonOnly=*/false, ConsiderFlags); +bool llvm::canCreateUndefOrPoison(const Operator *Op, + bool ConsiderFlagsAndMetadata) { + return ::canCreateUndefOrPoison(Op, /*PoisonOnly=*/false, + ConsiderFlagsAndMetadata); } -bool llvm::canCreatePoison(const Operator *Op, bool ConsiderFlags) { - return ::canCreateUndefOrPoison(Op, /*PoisonOnly=*/true, ConsiderFlags); +bool llvm::canCreatePoison(const Operator *Op, bool ConsiderFlagsAndMetadata) { + return ::canCreateUndefOrPoison(Op, /*PoisonOnly=*/true, + ConsiderFlagsAndMetadata); } static bool directlyImpliesPoison(const Value *ValAssumedPoison, |