LLVM 23.0.0git
VPlanUtils.cpp File Reference

Go to the source code of this file.

Functions

static bool propagatesPoisonFromRecipeOp (const VPRecipeBase *R)
 Returns true if R propagates poison from any operand to its result.
static bool poisonGuaranteesUB (const VPValue *V)
 Returns true if V being poison is guaranteed to trigger UB because it propagates to the address of a memory recipe.
static bool preservesUniformity (unsigned Opcode)
 Returns true if Opcode preserves uniformity, i.e., if all operands are uniform, the result will also be uniform.

Function Documentation

◆ poisonGuaranteesUB()

bool poisonGuaranteesUB ( const VPValue * V)
static

◆ preservesUniformity()

bool preservesUniformity ( unsigned Opcode)
static

Returns true if Opcode preserves uniformity, i.e., if all operands are uniform, the result will also be uniform.

Definition at line 329 of file VPlanUtils.cpp.

References llvm::VPInstruction::Broadcast, llvm::Instruction::isBinaryOp(), llvm::Instruction::isCast(), llvm::VPInstruction::Not, and llvm::VPInstruction::PtrAdd.

Referenced by llvm::vputils::isSingleScalar(), and llvm::vputils::isUniformAcrossVFsAndUFs().

◆ propagatesPoisonFromRecipeOp()

bool propagatesPoisonFromRecipeOp ( const VPRecipeBase * R)
static

Returns true if R propagates poison from any operand to its result.

Definition at line 86 of file VPlanUtils.cpp.

References llvm::TypeSwitch< T, ResultT >::Case(), llvm::Default, llvm::VPReplicateRecipe::getOpcode(), and llvm::Instruction::isCast().

Referenced by poisonGuaranteesUB().