|
LLVM 23.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 71 of file LoopVectorizationPlanner.h.
|
default |
Referenced by getToInsertAfter(), and llvm::VPBuilder::InsertPointGuard::InsertPointGuard().
|
inline |
Definition at line 92 of file LoopVectorizationPlanner.h.
References setInsertPoint().
|
inline |
Definition at line 93 of file LoopVectorizationPlanner.h.
References setInsertPoint().
|
inline |
Definition at line 94 of file LoopVectorizationPlanner.h.
References setInsertPoint().
|
inline |
Clear the insertion point: created instructions will not be inserted into a block.
Definition at line 100 of file LoopVectorizationPlanner.h.
Referenced by restoreIP().
|
inline |
Definition at line 235 of file LoopVectorizationPlanner.h.
References DL, llvm::DebugLoc::getUnknown(), LHS, and RHS.
Referenced by preparePlanForEpilogueVectorLoop().
|
inline |
Definition at line 218 of file LoopVectorizationPlanner.h.
References DL, llvm::DebugLoc::getUnknown(), LHS, and RHS.
Referenced by llvm::VPlanTransforms::handleMaxMinNumReductions().
| VPInstruction * VPBuilder::createAnyOfReduction | ( | VPValue * | ChainOp, |
| VPValue * | TrueVal, | ||
| VPValue * | FalseVal, | ||
| DebugLoc | DL = DebugLoc::getUnknown() ) |
Create an AnyOf reduction pattern: or-reduce ChainOp, freeze the result, then select between TrueVal and FalseVal.
Definition at line 1670 of file VPlan.cpp.
References assert(), llvm::VPInstruction::ComputeReductionResult, createNaryOp(), createSelect(), DL, getInsertBlock(), and llvm::Or.
Referenced by llvm::VPlanTransforms::optimizeFindIVReductions().
|
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 352 of file LoopVectorizationPlanner.h.
Referenced by tryToComputeEndValueForInduction().
|
inline |
Definition at line 336 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 420 of file LoopVectorizationPlanner.h.
Referenced by llvm::VPlanTransforms::addMinimumIterationCheck().
|
inline |
Create a new FCmp VPInstruction with predicate Pred and operands A and B.
Definition at line 284 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 273 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(), and llvm::VPlanTransforms::optimizeFindIVReductions().
|
inline |
Definition at line 250 of file LoopVectorizationPlanner.h.
References createNaryOp(), DL, llvm::DebugLoc::getUnknown(), LHS, llvm::VPInstruction::LogicalAnd, and RHS.
Referenced by llvm::VPlanTransforms::optimizeFindIVReductions().
|
inline |
Definition at line 256 of file LoopVectorizationPlanner.h.
References createNaryOp(), DL, llvm::DebugLoc::getUnknown(), LHS, llvm::VPInstruction::LogicalOr, and RHS.
|
inline |
Definition at line 188 of file LoopVectorizationPlanner.h.
References DL, and llvm::DebugLoc::getUnknown().
|
inline |
Definition at line 184 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 173 of file LoopVectorizationPlanner.h.
Referenced by addBypassBranch(), llvm::VPlanTransforms::addExitUsersForFirstOrderRecurrences(), addInitialSkeleton(), llvm::VPlanTransforms::adjustFixedOrderRecurrences(), createAnyOfReduction(), createElementCount(), createLogicalAnd(), createLogicalOr(), llvm::VPlanTransforms::expandBranchOnTwoConds(), llvm::VPlanTransforms::handleMaxMinNumReductions(), llvm::VPlanTransforms::handleUncountableEarlyExits(), llvm::VPlanTransforms::optimizeFindIVReductions(), and preparePlanForMainVectorLoop().
|
inline |
Definition at line 196 of file LoopVectorizationPlanner.h.
|
inline |
Definition at line 212 of file LoopVectorizationPlanner.h.
References DL, llvm::DebugLoc::getUnknown(), and llvm::VPInstruction::Not.
Referenced by llvm::VPlanTransforms::handleMaxMinNumReductions(), llvm::VPlanTransforms::handleUncountableEarlyExits(), and llvm::VPlanTransforms::optimizeFindIVReductions().
|
inline |
Definition at line 308 of file LoopVectorizationPlanner.h.
References DL, llvm::DebugLoc::getUnknown(), llvm::Offset, and llvm::VPInstruction::PtrAdd.
|
inline |
Definition at line 225 of file LoopVectorizationPlanner.h.
References DL, llvm::DebugLoc::getUnknown(), LHS, and RHS.
Referenced by llvm::VPlanTransforms::handleMaxMinNumReductions(), and llvm::VPlanTransforms::optimizeFindIVReductions().
|
inline |
Definition at line 204 of file LoopVectorizationPlanner.h.
Referenced by createElementCount(), llvm::VPRegionBlock::getOrCreateCanonicalIVIncrement(), and llvm::VPlanTransforms::narrowInterleaveGroups().
|
inline |
Definition at line 300 of file LoopVectorizationPlanner.h.
References DL, llvm::DebugLoc::getUnknown(), llvm::GEPNoWrapFlags::none(), llvm::Offset, and llvm::VPInstruction::PtrAdd.
|
inline |
Definition at line 375 of file LoopVectorizationPlanner.h.
References DL.
|
inline |
Definition at line 367 of file LoopVectorizationPlanner.h.
References DL.
Referenced by createScalarSExtOrTrunc(), createScalarZExtOrTrunc(), and tryToComputeEndValueForInduction().
|
inline |
Definition at line 412 of file LoopVectorizationPlanner.h.
References DL, llvm::FPMathOperator::getFastMathFlags(), and IV.
|
inline |
Definition at line 360 of file LoopVectorizationPlanner.h.
References DL.
|
inline |
Definition at line 324 of file LoopVectorizationPlanner.h.
References DL, and llvm::DebugLoc::getUnknown().
Referenced by addInitialSkeleton(), llvm::VPlanTransforms::convertToVariableLengthStep(), llvm::VPRegionBlock::dissolveToCFGLoop(), and preparePlanForMainVectorLoop().
|
inline |
Definition at line 394 of file LoopVectorizationPlanner.h.
References createScalarCast(), DL, and llvm::Type::getScalarSizeInBits().
|
inline |
Definition at line 383 of file LoopVectorizationPlanner.h.
References createScalarCast(), DL, and llvm::Type::getScalarSizeInBits().
Referenced by optimizeMaskToEVL(), and llvm::VPlanTransforms::simplifyKnownEVL().
|
inline |
Definition at line 262 of file LoopVectorizationPlanner.h.
References Cond, DL, and llvm::DebugLoc::getUnknown().
Referenced by createAnyOfReduction(), llvm::VPlanTransforms::handleMaxMinNumReductions(), and llvm::VPlanTransforms::optimizeFindIVReductions().
|
inline |
Definition at line 243 of file LoopVectorizationPlanner.h.
References DL, llvm::DebugLoc::getUnknown(), LHS, and RHS.
|
inline |
Definition at line 405 of file LoopVectorizationPlanner.h.
References llvm::VPIRFlags::getDefaultFlags().
|
inline |
Definition at line 330 of file LoopVectorizationPlanner.h.
References DL, and llvm::DebugLoc::getUnknown().
Referenced by expandVPWidenIntOrFpInduction().
|
inline |
Definition at line 316 of file LoopVectorizationPlanner.h.
References DL, llvm::DebugLoc::getUnknown(), llvm::GEPNoWrapFlags::none(), llvm::Offset, and llvm::VPInstruction::WidePtrAdd.
|
inline |
Definition at line 105 of file LoopVectorizationPlanner.h.
Referenced by createAnyOfReduction(), createElementCount(), and llvm::VPBuilder::InsertPointGuard::InsertPointGuard().
|
inline |
Definition at line 106 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 109 of file LoopVectorizationPlanner.h.
References B(), and VPBuilder().
Referenced by llvm::VPlanTransforms::addActiveLaneMask(), llvm::VPlanTransforms::handleFindLastReductions(), and preparePlanForEpilogueVectorLoop().
Insert R at the current insertion point. Returns R unchanged.
Definition at line 166 of file LoopVectorizationPlanner.h.
References T.
Referenced by llvm::VPRecipeBuilder::replaceWithFinalIfReductionStore().
|
inline |
Sets the current insert point to a previously-saved location.
Definition at line 136 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 145 of file LoopVectorizationPlanner.h.
References assert(), and llvm::VPBasicBlock::end().
Referenced by llvm::VPlanTransforms::adjustFixedOrderRecurrences(), llvm::VPlanTransforms::handleMaxMinNumReductions(), llvm::VPlanTransforms::handleUncountableEarlyExits(), restoreIP(), llvm::VPlanTransforms::truncateToMinimalBitwidths(), VPBuilder(), VPBuilder(), and VPBuilder().
|
inline |
This specifies that created instructions should be inserted at the specified point.
Definition at line 153 of file LoopVectorizationPlanner.h.
|
inline |
This specifies that created instructions should be inserted at the specified point.
Definition at line 160 of file LoopVectorizationPlanner.h.
References llvm::ilist_node_impl< OptionsT >::getIterator(), and llvm::VPRecipeBase::getParent().