ΒΆbool isGuaranteedNotToBeUndefOrPoison(
const llvm::Value* V,
llvm::AssumptionCache* AC = nullptr,
const llvm::Instruction* CtxI = nullptr,
const llvm::DominatorTree* DT = nullptr,
unsigned int Depth = 0)
bool isGuaranteedNotToBeUndefOrPoison(
const llvm::Value* V,
llvm::AssumptionCache* AC = nullptr,
const llvm::Instruction* CtxI = nullptr,
const llvm::DominatorTree* DT = nullptr,
unsigned int Depth = 0)
Description
Return true if this function can prove that V does not have undef bits and is never poison. If V is an aggregate value or vector, check whether all elements (except padding) are not undef or poison. Note that this is different from canCreateUndefOrPoison because the function assumes Op's operands are not poison/undef. If CtxI and DT are specified this method performs flow-sensitive analysis and returns true if it is guaranteed to be never undef or poison immediately before the CtxI.
Declared at: llvm/include/llvm/Analysis/ValueTracking.h:687
Parameters
- const llvm::Value* V
- llvm::AssumptionCache* AC = nullptr
- const llvm::Instruction* CtxI = nullptr
- const llvm::DominatorTree* DT = nullptr
- unsigned int Depth = 0