|
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 75 of file LoopVectorizationPlanner.h.
References setInsertPoint().
|
inline |
Definition at line 76 of file LoopVectorizationPlanner.h.
References setInsertPoint().
|
inline |
Definition at line 77 of file LoopVectorizationPlanner.h.
References setInsertPoint().
|
inline |
Clear the insertion point: created instructions will not be inserted into a block.
Definition at line 83 of file LoopVectorizationPlanner.h.
Referenced by restoreIP().
|
inline |
Definition at line 198 of file LoopVectorizationPlanner.h.
References DL, llvm::DebugLoc::getUnknown(), LHS, and RHS.
Referenced by llvm::VPlanTransforms::handleMaxMinNumReductions().
|
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 tryToComputeEndValueForInduction().
|
inline |
Definition at line 282 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 345 of file LoopVectorizationPlanner.h.
|
inline |
Create a new FCmp VPInstruction with predicate Pred and operands A and B.
Definition at line 244 of file LoopVectorizationPlanner.h.
References A(), assert(), B(), DL, llvm::CmpInst::FIRST_FCMP_PREDICATE, llvm::DebugLoc::getUnknown(), and llvm::CmpInst::LAST_FCMP_PREDICATE.
Referenced by llvm::VPlanTransforms::handleMaxMinNumReductions().
|
inline |
Create a new ICmp VPInstruction with predicate Pred and operands A and B.
Definition at line 233 of file LoopVectorizationPlanner.h.
References A(), assert(), B(), DL, llvm::CmpInst::FIRST_ICMP_PREDICATE, llvm::DebugLoc::getUnknown(), and llvm::CmpInst::LAST_ICMP_PREDICATE.
Referenced by llvm::VPlanTransforms::handleMaxMinNumReductions().
|
inline |
Definition at line 214 of file LoopVectorizationPlanner.h.
References createNaryOp(), DL, llvm::DebugLoc::getUnknown(), LHS, llvm::VPInstruction::LogicalAnd, and RHS.
|
inline |
Definition at line 168 of file LoopVectorizationPlanner.h.
References DL, and llvm::DebugLoc::getUnknown().
|
inline |
Definition at line 164 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 153 of file LoopVectorizationPlanner.h.
Referenced by llvm::VPlanTransforms::addExitUsersForFirstOrderRecurrences(), llvm::VPlanTransforms::adjustFixedOrderRecurrences(), llvm::VPlanTransforms::attachCheckBlock(), createElementCount(), createLogicalAnd(), createSelect(), llvm::VPlanTransforms::handleMaxMinNumReductions(), llvm::VPlanTransforms::handleUncountableEarlyExit(), llvm::VPlanTransforms::narrowInterleaveGroups(), preparePlanForMainVectorLoop(), and llvm::VPlanTransforms::updateScalarResumePhis().
|
inline |
Definition at line 176 of file LoopVectorizationPlanner.h.
|
inline |
Definition at line 192 of file LoopVectorizationPlanner.h.
References DL, llvm::DebugLoc::getUnknown(), and llvm::VPInstruction::Not.
Referenced by llvm::VPlanTransforms::handleMaxMinNumReductions().
|
inline |
Definition at line 261 of file LoopVectorizationPlanner.h.
References DL, llvm::DebugLoc::getUnknown(), llvm::Offset, and llvm::VPInstruction::PtrAdd.
|
inline |
Definition at line 205 of file LoopVectorizationPlanner.h.
References DL, llvm::DebugLoc::getUnknown(), LHS, and RHS.
Referenced by llvm::VPlanTransforms::handleMaxMinNumReductions().
|
inline |
Definition at line 184 of file LoopVectorizationPlanner.h.
Referenced by createElementCount().
|
inline |
Definition at line 253 of file LoopVectorizationPlanner.h.
References DL, llvm::DebugLoc::getUnknown(), llvm::GEPNoWrapFlags::none(), llvm::Offset, and llvm::VPInstruction::PtrAdd.
|
inline |
Definition at line 306 of file LoopVectorizationPlanner.h.
References DL.
Referenced by createScalarZExtOrTrunc(), optimizeMaskToEVL(), and tryToComputeEndValueForInduction().
|
inline |
Definition at line 337 of file LoopVectorizationPlanner.h.
References DL, llvm::FPMathOperator::getFastMathFlags(), and IV.
|
inline |
Definition at line 277 of file LoopVectorizationPlanner.h.
References DL.
Referenced by addInitialSkeleton(), llvm::VPlanTransforms::canonicalizeEVLLoops(), llvm::VPRegionBlock::dissolveToCFGLoop(), and preparePlanForMainVectorLoop().
|
inline |
Definition at line 314 of file LoopVectorizationPlanner.h.
References createScalarCast(), DL, and llvm::Type::getScalarSizeInBits().
Referenced by simplifyKnownEVL().
|
inline |
Definition at line 221 of file LoopVectorizationPlanner.h.
References Cond, createNaryOp(), DL, and llvm::DebugLoc::getUnknown().
Referenced by llvm::VPlanTransforms::handleMaxMinNumReductions().
|
inline |
Definition at line 325 of file LoopVectorizationPlanner.h.
|
inline |
Definition at line 269 of file LoopVectorizationPlanner.h.
References DL, llvm::DebugLoc::getUnknown(), llvm::GEPNoWrapFlags::none(), llvm::Offset, and llvm::VPInstruction::WidePtrAdd.
|
inline |
Definition at line 88 of file LoopVectorizationPlanner.h.
Referenced by createElementCount(), and llvm::VPBuilder::InsertPointGuard::InsertPointGuard().
|
inline |
Definition at line 89 of file LoopVectorizationPlanner.h.
Referenced by llvm::VPlanTransforms::handleMaxMinNumReductions(), and llvm::VPBuilder::InsertPointGuard::InsertPointGuard().
|
inlinestatic |
Create a VPBuilder to insert after R.
Definition at line 92 of file LoopVectorizationPlanner.h.
References B(), and VPBuilder().
Referenced by llvm::VPlanTransforms::addActiveLaneMask().
|
inline |
Insert R at the current insertion point.
Definition at line 149 of file LoopVectorizationPlanner.h.
|
inline |
Sets the current insert point to a previously-saved location.
Definition at line 119 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 128 of file LoopVectorizationPlanner.h.
References assert(), and llvm::VPBasicBlock::end().
Referenced by llvm::VPlanTransforms::adjustFixedOrderRecurrences(), llvm::VPlanTransforms::handleMaxMinNumReductions(), restoreIP(), llvm::VPlanTransforms::truncateToMinimalBitwidths(), VPBuilder(), VPBuilder(), and VPBuilder().
|
inline |
This specifies that created instructions should be inserted at the specified point.
Definition at line 136 of file LoopVectorizationPlanner.h.
|
inline |
This specifies that created instructions should be inserted at the specified point.
Definition at line 143 of file LoopVectorizationPlanner.h.
References llvm::ilist_node_impl< OptionsT >::getIterator(), and llvm::VPRecipeBase::getParent().