|
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 7456 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 7485 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 7477 of file LoopVectorize.cpp.
References llvm::dbgs(), llvm::InnerLoopAndEpilogueVectorizer::EPI, and LLVM_DEBUG.