LLVM 22.0.0git
llvm::LoopVectorizePass Struct Reference

The LoopVectorize Pass. More...

#include "llvm/Transforms/Vectorize/LoopVectorize.h"

Inheritance diagram for llvm::LoopVectorizePass:
[legend]

Public Member Functions

LLVM_ABI LoopVectorizePass (LoopVectorizeOptions Opts={})
LLVM_ABI PreservedAnalyses run (Function &F, FunctionAnalysisManager &AM)
LLVM_ABI void printPipeline (raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName)
LLVM_ABI LoopVectorizeResult runImpl (Function &F)
LLVM_ABI bool processLoop (Loop *L)
Public Member Functions inherited from llvm::PassInfoMixin< LoopVectorizePass >
void printPipeline (raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName)

Public Attributes

ScalarEvolutionSE
LoopInfoLI
TargetTransformInfoTTI
DominatorTreeDT
BlockFrequencyInfoBFI
TargetLibraryInfoTLI
DemandedBitsDB
AssumptionCacheAC
LoopAccessInfoManagerLAIs
OptimizationRemarkEmitterORE
ProfileSummaryInfoPSI
AAResultsAA

Additional Inherited Members

Static Public Member Functions inherited from llvm::PassInfoMixin< LoopVectorizePass >
static StringRef name ()
 Gets the name of the pass we are mixed into.

Detailed Description

The LoopVectorize Pass.

Definition at line 131 of file LoopVectorize.h.

Constructor & Destructor Documentation

◆ LoopVectorizePass()

LoopVectorizePass::LoopVectorizePass ( LoopVectorizeOptions Opts = {})

Member Function Documentation

◆ printPipeline()

void LoopVectorizePass::printPipeline ( raw_ostream & OS,
function_ref< StringRef(StringRef)> MapClassName2PassName )

Definition at line 10344 of file LoopVectorize.cpp.

References printPipeline().

Referenced by printPipeline().

◆ processLoop()

bool LoopVectorizePass::processLoop ( Loop * L)

Definition at line 9830 of file LoopVectorize.cpp.

References AA, AC, llvm::LoopVectorizationPlanner::addMinimumIterationCheck(), llvm::LoopVectorizeHints::allowVectorization(), llvm::InterleavedAccessInfo::analyzeInterleaving(), llvm::any_of(), assert(), BFI, llvm::LoopVectorizationLegality::canVectorize(), llvm::LoopVectorizationLegality::canVectorizeFPMath(), checkMixedPrecision(), llvm::CM_ScalarEpilogueNotAllowedLowTripLoop, llvm::CM_ScalarEpilogueNotNeededUsePredicate, llvm::LoopVectorizationPlanner::computeBestVF(), llvm::VectorizationFactor::Cost, llvm::LoopVectorizationCostModel::CostKind, DB, llvm::dbgs(), DEBUG_TYPE, DT, llvm::VPlan::duplicate(), llvm::LoopVectorizationPlanner::emitInvalidCostRemarks(), llvm::LoopVectorizeHints::emitRemarkWithHints(), EnableEarlyExitVectorization, EnableInterleavedMemAccesses, llvm::EnableVPlanNativePath, llvm::EpilogueLoopVectorizationInfo::EpilogueUF, llvm::EpilogueLoopVectorizationInfo::EpilogueVF, llvm::LoopVectorizationPlanner::executePlan(), F, fixScalarResumeValuesFromBypass(), llvm::LoopVectorizeHints::FK_Disabled, llvm::LoopVectorizeHints::FK_Enabled, ForceOrderedReductions, llvm::EpilogueVectorizerEpilogueLoop::getAdditionalBypassBlock(), llvm::LoopVectorizationLegality::getCountableExitingBlocks(), llvm::LoopVectorizationRequirements::getExactFPInst(), llvm::LoopVectorizeHints::getForce(), llvm::LoopVectorizeHints::getInterleave(), llvm::LoopVectorizationLegality::getLAI(), llvm::VPlan::getMiddleBlock(), llvm::LoopVectorizationPlanner::getPlanFor(), llvm::LoopVectorizationLegality::getPotentiallyFaultingLoads(), llvm::PredicatedScalarEvolution::getPredicate(), getScalarEpilogueLowering(), getSmallBestKnownTC(), llvm::InnerLoopVectorizer::getTripCount(), llvm::LoopVectorizationCostModel::getVScaleForTuning(), llvm::LoopVectorizeHints::getWidth(), llvm::LoopVectorizationLegality::hasHistograms(), llvm::LoopVectorizationPlanner::hasPlanWithVF(), llvm::LoopVectorizationLegality::hasUncountableEarlyExit(), isOutsideLoopWorkProfitable(), llvm::LoopVectorizeHints::isPotentiallyUnsafe(), llvm::ElementCount::isScalar(), llvm::ElementCount::isVector(), LAIs, LI, LLVM_DEBUG, LV_NAME, llvm::PatternMatch::m_One(), llvm::EpilogueLoopVectorizationInfo::MainLoopUF, llvm::EpilogueLoopVectorizationInfo::MainLoopVF, llvm::PatternMatch::match(), llvm::VPlanTransforms::materializeConstantVectorTripCount(), llvm::VectorizationFactor::MinProfitableTripCount, ORE, llvm::LoopVectorizationPlanner::plan(), preparePlanForEpilogueVectorLoop(), preparePlanForMainVectorLoop(), processLoopInVPlanNativePath(), PSI, llvm::reportVectorization(), llvm::reportVectorizationFailure(), llvm::InterleavedAccessInfo::requiresScalarEpilogue(), llvm::VPlanTransforms::runPass(), SE, llvm::LoopVectorizationPlanner::selectEpilogueVectorizationFactor(), llvm::LoopVectorizationPlanner::selectInterleaveCount(), llvm::VPBlockBase::setName(), llvm::InnerLoopVectorizer::setTripCount(), TinyTripCountVectorThreshold, llvm::LoopVectorizationCostModel::TLI, TLI, llvm::LoopVectorizationCostModel::TTI, TTI, useMaskedInterleavedAccesses(), llvm::LoopVectorizeHints::vectorizeAnalysisPassName(), llvm::EpilogueLoopVectorizationInfo::VectorTripCount, llvm::verifyFunction(), and llvm::VectorizationFactor::Width.

Referenced by runImpl().

◆ run()

◆ runImpl()

Member Data Documentation

◆ AA

AAResults* llvm::LoopVectorizePass::AA

Definition at line 155 of file LoopVectorize.h.

Referenced by processLoop(), and run().

◆ AC

AssumptionCache* llvm::LoopVectorizePass::AC

Definition at line 151 of file LoopVectorize.h.

Referenced by processLoop(), run(), and runImpl().

◆ BFI

BlockFrequencyInfo* llvm::LoopVectorizePass::BFI

Definition at line 148 of file LoopVectorize.h.

Referenced by processLoop(), and run().

◆ DB

DemandedBits* llvm::LoopVectorizePass::DB

Definition at line 150 of file LoopVectorize.h.

Referenced by processLoop(), and run().

◆ DT

DominatorTree* llvm::LoopVectorizePass::DT

Definition at line 147 of file LoopVectorize.h.

Referenced by processLoop(), run(), and runImpl().

◆ LAIs

LoopAccessInfoManager* llvm::LoopVectorizePass::LAIs

Definition at line 152 of file LoopVectorize.h.

Referenced by processLoop(), run(), and runImpl().

◆ LI

LoopInfo* llvm::LoopVectorizePass::LI

Definition at line 145 of file LoopVectorize.h.

Referenced by processLoop(), run(), and runImpl().

◆ ORE

OptimizationRemarkEmitter* llvm::LoopVectorizePass::ORE

Definition at line 153 of file LoopVectorize.h.

Referenced by processLoop(), run(), and runImpl().

◆ PSI

ProfileSummaryInfo* llvm::LoopVectorizePass::PSI

Definition at line 154 of file LoopVectorize.h.

Referenced by processLoop(), and run().

◆ SE

ScalarEvolution* llvm::LoopVectorizePass::SE

Definition at line 144 of file LoopVectorize.h.

Referenced by processLoop(), run(), and runImpl().

◆ TLI

TargetLibraryInfo* llvm::LoopVectorizePass::TLI

Definition at line 149 of file LoopVectorize.h.

Referenced by processLoop(), and run().

◆ TTI

TargetTransformInfo* llvm::LoopVectorizePass::TTI

Definition at line 146 of file LoopVectorize.h.

Referenced by processLoop(), run(), and runImpl().


The documentation for this struct was generated from the following files: