LLVM 22.0.0git
|
VPlan-based builder utility analogous to IRBuilder. More...
#include "Transforms/Vectorize/LoopVectorizationPlanner.h"
Classes | |
class | InsertPointGuard |
RAII object that stores the current insertion point and restores it when the object is destroyed. More... | |
class | VPInsertPoint |
InsertPoint - A saved insertion point. More... |
Static Public Member Functions | |
static VPBuilder | getToInsertAfter (VPRecipeBase *R) |
Create a VPBuilder to insert after R . |
VPlan-based builder utility analogous to IRBuilder.
Definition at line 54 of file LoopVectorizationPlanner.h.
|
default |
Referenced by getToInsertAfter(), and llvm::VPBuilder::InsertPointGuard::InsertPointGuard().
|
inline |
Definition at line 73 of file LoopVectorizationPlanner.h.
References setInsertPoint().
|
inline |
Definition at line 74 of file LoopVectorizationPlanner.h.
References setInsertPoint().
|
inline |
Definition at line 75 of file LoopVectorizationPlanner.h.
References setInsertPoint().
|
inline |
Clear the insertion point: created instructions will not be inserted into a block.
Definition at line 81 of file LoopVectorizationPlanner.h.
Referenced by restoreIP().
|
inline |
Definition at line 196 of file LoopVectorizationPlanner.h.
References DL, llvm::DebugLoc::getUnknown(), LHS, and RHS.
|
inline |
Convert the input value Current
to the corresponding value of an induction with Start
and Step
values, using Start
+ Current
* Step
.
Definition at line 298 of file LoopVectorizationPlanner.h.
Referenced by addResumePhiRecipeForInduction().
|
inline |
Definition at line 281 of file LoopVectorizationPlanner.h.
References createNaryOp(), createOverflowingOp(), getInsertBlock(), llvm::VPlan::getOrAddLiveIn(), llvm::VPBlockBase::getPlan(), and llvm::VPInstruction::VScale.
Referenced by llvm::VPlanTransforms::narrowInterleaveGroups().
|
inline |
Definition at line 337 of file LoopVectorizationPlanner.h.
|
inline |
Create a new FCmp VPInstruction with predicate Pred
and operands A
and B
.
Definition at line 243 of file LoopVectorizationPlanner.h.
References A(), assert(), B(), DL, llvm::CmpInst::FIRST_FCMP_PREDICATE, llvm::DebugLoc::getUnknown(), and llvm::CmpInst::LAST_FCMP_PREDICATE.
|
inline |
Create a new ICmp VPInstruction with predicate Pred
and operands A
and B
.
Definition at line 232 of file LoopVectorizationPlanner.h.
References A(), assert(), B(), DL, llvm::CmpInst::FIRST_ICMP_PREDICATE, llvm::DebugLoc::getUnknown(), and llvm::CmpInst::LAST_ICMP_PREDICATE.
|
inline |
Definition at line 211 of file LoopVectorizationPlanner.h.
References DL, llvm::DebugLoc::getUnknown(), LHS, llvm::VPInstruction::LogicalAnd, and RHS.
|
inline |
Definition at line 165 of file LoopVectorizationPlanner.h.
References DL, llvm::DebugLoc::getUnknown(), and Operands.
|
inline |
Definition at line 161 of file LoopVectorizationPlanner.h.
|
inline |
Create an N-ary operation with Opcode
, Operands
and set Inst
as its underlying Instruction.
Definition at line 151 of file LoopVectorizationPlanner.h.
References DL, llvm::DebugLoc::getUnknown(), Operands, and llvm::VPValue::setUnderlyingValue().
Referenced by addExitUsersForFirstOrderRecurrences(), addScalarResumePhis(), llvm::VPlanTransforms::adjustFixedOrderRecurrences(), llvm::VPlanTransforms::attachCheckBlock(), createElementCount(), llvm::VPlanTransforms::handleUncountableEarlyExit(), llvm::VPlanTransforms::narrowInterleaveGroups(), and preparePlanForMainVectorLoop().
|
inline |
Definition at line 173 of file LoopVectorizationPlanner.h.
References Operands.
|
inline |
Definition at line 190 of file LoopVectorizationPlanner.h.
References DL, llvm::DebugLoc::getUnknown(), and llvm::VPInstruction::Not.
|
inline |
Definition at line 260 of file LoopVectorizationPlanner.h.
References DL, llvm::DebugLoc::getUnknown(), llvm::Offset, Ptr, and llvm::VPInstruction::PtrAdd.
|
inline |
Definition at line 202 of file LoopVectorizationPlanner.h.
References DL, llvm::DebugLoc::getUnknown(), LHS, and RHS.
|
inline |
Definition at line 181 of file LoopVectorizationPlanner.h.
References DL, llvm::DebugLoc::getUnknown(), and Operands.
Referenced by createElementCount().
|
inline |
Definition at line 252 of file LoopVectorizationPlanner.h.
References DL, llvm::DebugLoc::getUnknown(), llvm::GEPNoWrapFlags::none(), llvm::Offset, Ptr, and llvm::VPInstruction::PtrAdd.
|
inline |
Definition at line 306 of file LoopVectorizationPlanner.h.
References DL.
Referenced by addResumePhiRecipeForInduction(), and createScalarZExtOrTrunc().
|
inline |
Definition at line 329 of file LoopVectorizationPlanner.h.
References DL, llvm::FPMathOperator::getFastMathFlags(), and IV.
|
inline |
Definition at line 276 of file LoopVectorizationPlanner.h.
References DL.
Referenced by addResumePhiRecipeForInduction(), addScalarResumePhis(), llvm::VPlanTransforms::canonicalizeEVLLoops(), llvm::VPRegionBlock::dissolveToCFGLoop(), and preparePlanForMainVectorLoop().
|
inline |
Definition at line 312 of file LoopVectorizationPlanner.h.
References createScalarCast(), DL, and llvm::Type::getScalarSizeInBits().
|
inline |
Definition at line 219 of file LoopVectorizationPlanner.h.
References Cond, DL, llvm::DebugLoc::getUnknown(), and Select.
|
inline |
Definition at line 323 of file LoopVectorizationPlanner.h.
|
inline |
Definition at line 268 of file LoopVectorizationPlanner.h.
References DL, llvm::DebugLoc::getUnknown(), llvm::GEPNoWrapFlags::none(), llvm::Offset, Ptr, and llvm::VPInstruction::WidePtrAdd.
|
inline |
Definition at line 86 of file LoopVectorizationPlanner.h.
Referenced by createElementCount(), and llvm::VPBuilder::InsertPointGuard::InsertPointGuard().
|
inline |
Definition at line 87 of file LoopVectorizationPlanner.h.
Referenced by llvm::VPBuilder::InsertPointGuard::InsertPointGuard().
|
inlinestatic |
Create a VPBuilder to insert after R
.
Definition at line 90 of file LoopVectorizationPlanner.h.
References B(), and VPBuilder().
Referenced by llvm::VPlanTransforms::addActiveLaneMask().
|
inline |
Insert R
at the current insertion point.
Definition at line 147 of file LoopVectorizationPlanner.h.
|
inline |
Sets the current insert point to a previously-saved location.
Definition at line 117 of file LoopVectorizationPlanner.h.
References clearInsertionPoint(), llvm::VPBuilder::VPInsertPoint::getBlock(), llvm::VPBuilder::VPInsertPoint::getPoint(), llvm::VPBuilder::VPInsertPoint::isSet(), and setInsertPoint().
|
inline |
This specifies that created VPInstructions should be appended to the end of the specified block.
Definition at line 126 of file LoopVectorizationPlanner.h.
References assert(), and llvm::VPBasicBlock::end().
Referenced by llvm::VPlanTransforms::adjustFixedOrderRecurrences(), restoreIP(), VPBuilder(), VPBuilder(), and VPBuilder().
|
inline |
This specifies that created instructions should be inserted at the specified point.
Definition at line 134 of file LoopVectorizationPlanner.h.
|
inline |
This specifies that created instructions should be inserted at the specified point.
Definition at line 141 of file LoopVectorizationPlanner.h.
References llvm::ilist_node_impl< OptionsT >::getIterator(), and llvm::VPRecipeBase::getParent().