|
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 297 of file LoopVectorizationPlanner.h.
Referenced by addResumePhiRecipeForInduction().
|
inline |
Definition at line 281 of file LoopVectorizationPlanner.h.
References createNaryOp(), createOverflowingOp(), llvm::VPlan::getConstantInt(), getInsertBlock(), llvm::VPBlockBase::getPlan(), and llvm::VPInstruction::VScale.
Referenced by llvm::VPlanTransforms::narrowInterleaveGroups().
|
inline |
Definition at line 344 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, and llvm::DebugLoc::getUnknown().
|
inline |
Definition at line 161 of file LoopVectorizationPlanner.h.
References DL.
|
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(), and llvm::VPValue::setUnderlyingValue().
Referenced by llvm::VPlanTransforms::addExitUsersForFirstOrderRecurrences(), llvm::VPlanTransforms::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.
|
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, and llvm::DebugLoc::getUnknown().
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 305 of file LoopVectorizationPlanner.h.
References DL.
Referenced by addResumePhiRecipeForInduction(), and createScalarZExtOrTrunc().
|
inline |
Definition at line 336 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(), llvm::VPlanTransforms::addScalarResumePhis(), llvm::VPlanTransforms::canonicalizeEVLLoops(), llvm::VPRegionBlock::dissolveToCFGLoop(), and preparePlanForMainVectorLoop().
|
inline |
Definition at line 313 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 324 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(), llvm::VPlanTransforms::truncateToMinimalBitwidths(), 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().