|
LLVM 23.0.0git
|
#include "VPlanUtils.h"#include "VPlanAnalysis.h"#include "VPlanCFG.h"#include "VPlanDominatorTree.h"#include "VPlanPatternMatch.h"#include "llvm/ADT/TypeSwitch.h"#include "llvm/Analysis/MemoryLocation.h"#include "llvm/Analysis/ScalarEvolutionExpressions.h"#include "llvm/Analysis/ScalarEvolutionPatternMatch.h"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. | |
Returns true if V being poison is guaranteed to trigger UB because it propagates to the address of a memory recipe.
Definition at line 101 of file VPlanUtils.cpp.
References llvm::cast(), llvm::dyn_cast(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::SmallVectorImpl< T >::pop_back_val(), propagatesPoisonFromRecipeOp(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::VPValue::users().
Referenced by llvm::vputils::getSCEVExprForVPValue().
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().
|
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().