|
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 113 of file LoopVectorizationPlanner.h.
References setInsertPoint().
|
inline |
Definition at line 114 of file LoopVectorizationPlanner.h.
References setInsertPoint().
|
inline |
Definition at line 115 of file LoopVectorizationPlanner.h.
References setInsertPoint().
|
inline |
Clear the insertion point: created instructions will not be inserted into a block.
Definition at line 121 of file LoopVectorizationPlanner.h.
Referenced by restoreIP().
|
inline |
Definition at line 270 of file LoopVectorizationPlanner.h.
References DL, llvm::DebugLoc::getUnknown(), LHS, and RHS.
Referenced by preparePlanForEpilogueVectorLoop().
|
inline |
Definition at line 253 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 1675 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 387 of file LoopVectorizationPlanner.h.
Referenced by tryToComputeEndValueForInduction().
|
inline |
Definition at line 371 of file LoopVectorizationPlanner.h.
References createNaryOp(), createOverflowingOp(), llvm::VPlan::getConstantInt(), getInsertBlock(), llvm::VPBlockBase::getPlan(), and llvm::VPInstruction::VScale.
|
inline |
Definition at line 460 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 319 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 |
Definition at line 225 of file LoopVectorizationPlanner.h.
References DL, llvm::VPInstruction::FirstActiveLane, and llvm::DebugLoc::getUnknown().
Referenced by llvm::VPlanTransforms::handleUncountableEarlyExits().
|
inline |
Create a new ICmp VPInstruction with predicate Pred and operands A and B.
Definition at line 308 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 232 of file LoopVectorizationPlanner.h.
References DL, llvm::DebugLoc::getUnknown(), and llvm::VPInstruction::LastActiveLane.
|
inline |
Definition at line 285 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 291 of file LoopVectorizationPlanner.h.
References createNaryOp(), DL, llvm::DebugLoc::getUnknown(), LHS, llvm::VPInstruction::LogicalOr, and RHS.
|
inline |
Definition at line 209 of file LoopVectorizationPlanner.h.
References DL, and llvm::DebugLoc::getUnknown().
|
inline |
Definition at line 205 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 194 of file LoopVectorizationPlanner.h.
Referenced by addBypassBranch(), addInitialSkeleton(), llvm::VPlanTransforms::adjustFirstOrderRecurrenceMiddleUsers(), createAnyOfReduction(), createElementCount(), createLogicalAnd(), createLogicalOr(), llvm::VPlanTransforms::expandBranchOnTwoConds(), llvm::VPlanTransforms::handleMaxMinNumReductions(), llvm::VPlanTransforms::handleUncountableEarlyExits(), llvm::VPlanTransforms::optimizeFindIVReductions(), preparePlanForMainVectorLoop(), and tryToSinkOrHoistRecurrenceUsers().
|
inline |
Definition at line 217 of file LoopVectorizationPlanner.h.
|
inline |
Definition at line 247 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 343 of file LoopVectorizationPlanner.h.
References DL, llvm::DebugLoc::getUnknown(), llvm::Offset, and llvm::VPInstruction::PtrAdd.
|
inline |
Definition at line 260 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 239 of file LoopVectorizationPlanner.h.
Referenced by createElementCount(), and llvm::VPRegionBlock::getOrCreateCanonicalIVIncrement().
|
inline |
Definition at line 335 of file LoopVectorizationPlanner.h.
References DL, llvm::DebugLoc::getUnknown(), llvm::GEPNoWrapFlags::none(), llvm::Offset, and llvm::VPInstruction::PtrAdd.
|
inline |
Definition at line 409 of file LoopVectorizationPlanner.h.
References DL.
|
inline |
Definition at line 401 of file LoopVectorizationPlanner.h.
References DL.
Referenced by createScalarSExtOrTrunc(), createScalarZExtOrTrunc(), and tryToComputeEndValueForInduction().
|
inline |
Definition at line 446 of file LoopVectorizationPlanner.h.
References DL, llvm::FPMathOperator::getFastMathFlags(), and IV.
|
inline |
Definition at line 394 of file LoopVectorizationPlanner.h.
References DL.
|
inline |
Definition at line 359 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 428 of file LoopVectorizationPlanner.h.
References createScalarCast(), DL, and llvm::Type::getScalarSizeInBits().
|
inline |
Definition at line 417 of file LoopVectorizationPlanner.h.
References createScalarCast(), DL, and llvm::Type::getScalarSizeInBits().
Referenced by fixupVFUsersForEVL(), optimizeMaskToEVL(), and llvm::VPlanTransforms::simplifyKnownEVL().
|
inline |
Definition at line 297 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 278 of file LoopVectorizationPlanner.h.
References DL, llvm::DebugLoc::getUnknown(), LHS, and RHS.
|
inline |
Definition at line 465 of file LoopVectorizationPlanner.h.
References DL.
|
inline |
Definition at line 439 of file LoopVectorizationPlanner.h.
References llvm::VPIRFlags::getDefaultFlags().
Referenced by llvm::VPlanTransforms::truncateToMinimalBitwidths().
|
inline |
Definition at line 471 of file LoopVectorizationPlanner.h.
References DL.
|
inline |
Definition at line 365 of file LoopVectorizationPlanner.h.
References DL, and llvm::DebugLoc::getUnknown().
Referenced by expandVPWidenIntOrFpInduction().
|
inline |
Definition at line 351 of file LoopVectorizationPlanner.h.
References DL, llvm::DebugLoc::getUnknown(), llvm::GEPNoWrapFlags::none(), llvm::Offset, and llvm::VPInstruction::WidePtrAdd.
Try to expand Expr using VPSCEVExpander.
Returns nullptr if Expr cannot be expanded yet.
Definition at line 456 of file LoopVectorizationPlanner.h.
References DL.
|
inline |
Definition at line 126 of file LoopVectorizationPlanner.h.
Referenced by createAnyOfReduction(), createElementCount(), and llvm::VPBuilder::InsertPointGuard::InsertPointGuard().
|
inline |
Definition at line 127 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 130 of file LoopVectorizationPlanner.h.
References B(), and VPBuilder().
Referenced by llvm::VPlanTransforms::addActiveLaneMask(), dissolveReplicateRegion(), fixupVFUsersForEVL(), llvm::VPlanTransforms::handleFindLastReductions(), preparePlanForEpilogueVectorLoop(), and llvm::VPlanTransforms::truncateToMinimalBitwidths().
Insert R at the current insertion point. Returns R unchanged.
Definition at line 187 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 157 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 166 of file LoopVectorizationPlanner.h.
References assert(), and llvm::VPBasicBlock::end().
Referenced by 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 174 of file LoopVectorizationPlanner.h.
|
inline |
This specifies that created instructions should be inserted at the specified point.
Definition at line 181 of file LoopVectorizationPlanner.h.
References llvm::ilist_node_impl< OptionsT >::getIterator(), and llvm::VPRecipeBase::getParent().