struct LoopVectorizePass

Declaration

struct LoopVectorizePass : public PassInfoMixin { /* full declaration omitted */ };

Description

The LoopVectorize Pass.

Declared at: llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h:161

Inherits from: PassInfoMixin

Member Variables

private bool InterleaveOnlyWhenForced
If false, consider all loops for interleaving. If true, only loops that explicitly request interleaving are considered.
private bool VectorizeOnlyWhenForced
If false, consider all loops for vectorization. If true, only loops that explicitly request vectorization are considered.
public llvm::ScalarEvolution* SE
public llvm::LoopInfo* LI
public llvm::TargetTransformInfo* TTI
public llvm::DominatorTree* DT
public llvm::BlockFrequencyInfo* BFI
public llvm::TargetLibraryInfo* TLI
public llvm::DemandedBits* DB
public llvm::AAResults* AA
public llvm::AssumptionCache* AC
public std::function<const LoopAccessInfo&(Loop&)>* GetLAA
public llvm::OptimizationRemarkEmitter* ORE
public llvm::ProfileSummaryInfo* PSI

Method Overview

  • public LoopVectorizePass(llvm::LoopVectorizeOptions Opts = {})
  • public void printPipeline(llvm::raw_ostream & OS, function_ref<llvm::StringRef (llvm::StringRef)> MapClassName2PassName)
  • public bool processLoop(llvm::Loop * L)
  • public llvm::PreservedAnalyses run(llvm::Function & F, llvm::FunctionAnalysisManager & AM)
  • public llvm::LoopVectorizeResult runImpl(llvm::Function & F, llvm::ScalarEvolution & SE_, llvm::LoopInfo & LI_, llvm::TargetTransformInfo & TTI_, llvm::DominatorTree & DT_, llvm::BlockFrequencyInfo & BFI_, llvm::TargetLibraryInfo * TLI_, llvm::DemandedBits & DB_, llvm::AAResults & AA_, llvm::AssumptionCache & AC_, std::function<const LoopAccessInfo &(Loop &)> & GetLAA_, llvm::OptimizationRemarkEmitter & ORE_, llvm::ProfileSummaryInfo * PSI_)

Methods

LoopVectorizePass(
    llvm::LoopVectorizeOptions Opts = {})

Declared at: llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h:172

Parameters

llvm::LoopVectorizeOptions Opts = {}

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

Declared at: llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h:188

Parameters

llvm::raw_ostream& OS
function_ref<llvm::StringRef(llvm::StringRef)> MapClassName2PassName

bool processLoop(llvm::Loop* L)

Declared at: llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h:200

Parameters

llvm::Loop* L

llvm::PreservedAnalyses run(
    llvm::Function& F,
    llvm::FunctionAnalysisManager& AM)

Declared at: llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h:187

Parameters

llvm::Function& F
llvm::FunctionAnalysisManager& AM

llvm::LoopVectorizeResult runImpl(
    llvm::Function& F,
    llvm::ScalarEvolution& SE_,
    llvm::LoopInfo& LI_,
    llvm::TargetTransformInfo& TTI_,
    llvm::DominatorTree& DT_,
    llvm::BlockFrequencyInfo& BFI_,
    llvm::TargetLibraryInfo* TLI_,
    llvm::DemandedBits& DB_,
    llvm::AAResults& AA_,
    llvm::AssumptionCache& AC_,
    std::function<const LoopAccessInfo&(Loop&)>&
        GetLAA_,
    llvm::OptimizationRemarkEmitter& ORE_,
    llvm::ProfileSummaryInfo* PSI_)

Declared at: llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h:193

Parameters

llvm::Function& F
llvm::ScalarEvolution& SE_
llvm::LoopInfo& LI_
llvm::TargetTransformInfo& TTI_
llvm::DominatorTree& DT_
llvm::BlockFrequencyInfo& BFI_
llvm::TargetLibraryInfo* TLI_
llvm::DemandedBits& DB_
llvm::AAResults& AA_
llvm::AssumptionCache& AC_
std::function<const LoopAccessInfo&(Loop&)>& GetLAA_
llvm::OptimizationRemarkEmitter& ORE_
llvm::ProfileSummaryInfo* PSI_