ΒΆbool propagatesPoison(const llvm::Operator* I)

Description

Return true if I yields poison or raises UB if any of its operands is poison. Formally, given I = `r = op v1 v2 .. vN`, propagatesPoison returns true if, for all i, r is evaluated to poison or op raises UB if vi = poison. If vi is a vector or an aggregate and r is a single value, any poison element in vi should make r poison or raise UB. To filter out operands that raise UB on poison, you can use getGuaranteedNonPoisonOp.

Declared at: llvm/include/llvm/Analysis/ValueTracking.h:626

Parameters

const llvm::Operator* I