LLVM 22.0.0git
|
Protected Member Functions | |
void | printDebugTracesAtStart () override |
Allow subclasses to override and print debug traces before/after vplan execution, when trace information is requested. | |
void | printDebugTracesAtEnd () override |
Protected Member Functions inherited from llvm::InnerLoopVectorizer | |
BasicBlock * | createScalarPreheader (StringRef Prefix) |
Create and return a new IR basic block for the scalar preheader whose name is prefixed with Prefix . |
Additional Inherited Members | |
Public Attributes inherited from llvm::InnerLoopAndEpilogueVectorizer | |
EpilogueLoopVectorizationInfo & | EPI |
Holds and updates state information required to vectorize the main loop and its epilogue in two separate passes. | |
Protected Attributes inherited from llvm::InnerLoopAndEpilogueVectorizer | |
ElementCount | MinProfitableTripCount |
Protected Attributes inherited from llvm::InnerLoopVectorizer | |
Loop * | OrigLoop |
The original loop. | |
PredicatedScalarEvolution & | PSE |
A wrapper around ScalarEvolution used to add runtime SCEV checks. | |
LoopInfo * | LI |
Loop Info. | |
DominatorTree * | DT |
Dominator Tree. | |
const TargetTransformInfo * | TTI |
Target Transform Info. | |
AssumptionCache * | AC |
Assumption Cache. | |
ElementCount | VF |
The vectorization SIMD factor to use. | |
unsigned | UF |
The vectorization unroll factor to use. | |
IRBuilder | Builder |
The builder that we use. | |
Value * | TripCount = nullptr |
Trip count of the original loop. | |
LoopVectorizationCostModel * | Cost |
The profitablity analysis. | |
BlockFrequencyInfo * | BFI |
BFI and PSI are used to check for profile guided size optimizations. | |
ProfileSummaryInfo * | PSI |
GeneratedRTChecks & | RTChecks |
Structure to hold information about generated runtime checks, responsible for cleaning the checks, if vectorization turns out unprofitable. | |
VPlan & | Plan |
VPBasicBlock * | VectorPHVPBB |
The vector preheader block of Plan , used as target for check blocks introduced during skeleton creation. |
Definition at line 694 of file LoopVectorize.cpp.
|
inline |
Definition at line 696 of file LoopVectorize.cpp.
References llvm::InnerLoopVectorizer::AC, llvm::InnerLoopVectorizer::BFI, llvm::InnerLoopVectorizer::DT, llvm::InnerLoopAndEpilogueVectorizer::EPI, llvm::InnerLoopAndEpilogueVectorizer::InnerLoopAndEpilogueVectorizer(), llvm::InnerLoopVectorizer::LI, llvm::InnerLoopVectorizer::OrigLoop, llvm::InnerLoopVectorizer::Plan, llvm::InnerLoopVectorizer::PSE, and llvm::InnerLoopVectorizer::PSI.
|
finalvirtual |
Implements the interface for creating a vectorized skeleton using the epilogue loop strategy (i.e., the second pass of VPlan execution).
This function creates a new scalar preheader, using the previous one as entry block to the epilogue VPlan.
The minimum iteration check is being represented in VPlan.
Reimplemented from llvm::InnerLoopVectorizer.
Definition at line 7411 of file LoopVectorize.cpp.
References llvm::InnerLoopVectorizer::createScalarPreheader(), llvm::VPBasicBlock::end(), llvm::BasicBlock::getSinglePredecessor(), llvm::isa(), llvm::make_early_inc_range(), llvm::InnerLoopVectorizer::Plan, llvm::VPBlockUtils::reassociateBlocks(), and llvm::Value::setName().
|
overrideprotectedvirtual |
Reimplemented from llvm::InnerLoopVectorizer.
Definition at line 7440 of file LoopVectorize.cpp.
References llvm::dbgs(), DEBUG_WITH_TYPE, llvm::InnerLoopVectorizer::OrigLoop, and VerboseDebug.
|
overrideprotectedvirtual |
Allow subclasses to override and print debug traces before/after vplan execution, when trace information is requested.
Reimplemented from llvm::InnerLoopVectorizer.
Definition at line 7432 of file LoopVectorize.cpp.
References llvm::dbgs(), llvm::InnerLoopAndEpilogueVectorizer::EPI, and LLVM_DEBUG.