diff options
Diffstat (limited to 'llvm/lib/Analysis')
-rw-r--r-- | llvm/lib/Analysis/ScalarEvolution.cpp | 6 | ||||
-rw-r--r-- | llvm/lib/Analysis/ValueTracking.cpp | 12 |
2 files changed, 9 insertions, 9 deletions
diff --git a/llvm/lib/Analysis/ScalarEvolution.cpp b/llvm/lib/Analysis/ScalarEvolution.cpp index 690acb2..75891ae 100644 --- a/llvm/lib/Analysis/ScalarEvolution.cpp +++ b/llvm/lib/Analysis/ScalarEvolution.cpp @@ -6072,7 +6072,7 @@ bool ScalarEvolution::isSCEVExprNeverPoison(const Instruction *I) { return false; // Only proceed if we can prove that I does not yield poison. - if (!programUndefinedIfFullPoison(I)) + if (!programUndefinedIfPoison(I)) return false; // At this point we know that if I is executed, then it does not wrap @@ -6152,7 +6152,7 @@ bool ScalarEvolution::isAddRecNeverPoison(const Instruction *I, const Loop *L) { SmallVector<const Instruction *, 8> PoisonStack; // We start by assuming \c I, the post-inc add recurrence, is poison. Only - // things that are known to be fully poison under that assumption go on the + // things that are known to be poison under that assumption go on the // PoisonStack. Pushed.insert(I); PoisonStack.push_back(I); @@ -6162,7 +6162,7 @@ bool ScalarEvolution::isAddRecNeverPoison(const Instruction *I, const Loop *L) { const Instruction *Poison = PoisonStack.pop_back_val(); for (auto *PoisonUser : Poison->users()) { - if (propagatesFullPoison(cast<Instruction>(PoisonUser))) { + if (propagatesPoison(cast<Instruction>(PoisonUser))) { if (Pushed.insert(cast<Instruction>(PoisonUser)).second) PoisonStack.push_back(cast<Instruction>(PoisonUser)); } else if (auto *BI = dyn_cast<BranchInst>(PoisonUser)) { diff --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp index be5d18f..5ef5abc 100644 --- a/llvm/lib/Analysis/ValueTracking.cpp +++ b/llvm/lib/Analysis/ValueTracking.cpp @@ -4720,7 +4720,7 @@ bool llvm::isGuaranteedNotToBeUndefOrPoison(const Value *V, } if (auto I = dyn_cast<Instruction>(V)) { - if (programUndefinedIfFullPoison(I) && I->getType()->isIntegerTy(1)) + if (programUndefinedIfPoison(I) && I->getType()->isIntegerTy(1)) // Note: once we have an agreement that poison is a value-wise concept, // we can remove the isIntegerTy(1) constraint. return true; @@ -4846,7 +4846,7 @@ bool llvm::isGuaranteedToExecuteForEveryIteration(const Instruction *I, llvm_unreachable("Instruction not contained in its own parent basic block."); } -bool llvm::propagatesFullPoison(const Instruction *I) { +bool llvm::propagatesPoison(const Instruction *I) { // TODO: This should include all instructions apart from phis, selects and // call-like instructions. switch (I->getOpcode()) { @@ -4880,7 +4880,7 @@ bool llvm::propagatesFullPoison(const Instruction *I) { } } -const Value *llvm::getGuaranteedNonFullPoisonOp(const Instruction *I) { +const Value *llvm::getGuaranteedNonPoisonOp(const Instruction *I) { switch (I->getOpcode()) { case Instruction::Store: return cast<StoreInst>(I)->getPointerOperand(); @@ -4918,12 +4918,12 @@ const Value *llvm::getGuaranteedNonFullPoisonOp(const Instruction *I) { bool llvm::mustTriggerUB(const Instruction *I, const SmallSet<const Value *, 16>& KnownPoison) { - auto *NotPoison = getGuaranteedNonFullPoisonOp(I); + auto *NotPoison = getGuaranteedNonPoisonOp(I); return (NotPoison && KnownPoison.count(NotPoison)); } -bool llvm::programUndefinedIfFullPoison(const Instruction *PoisonI) { +bool llvm::programUndefinedIfPoison(const Instruction *PoisonI) { // We currently only look for uses of poison values within the same basic // block, as that makes it easier to guarantee that the uses will be // executed given that PoisonI is executed. @@ -4956,7 +4956,7 @@ bool llvm::programUndefinedIfFullPoison(const Instruction *PoisonI) { if (YieldsPoison.count(&I)) { for (const User *User : I.users()) { const Instruction *UserI = cast<Instruction>(User); - if (propagatesFullPoison(UserI)) + if (propagatesPoison(UserI)) YieldsPoison.insert(User); } } |