LLVM 20.0.0git
Public Member Functions | Public Attributes | List of all members
llvm::PipelineTuningOptions Class Reference

Tunable parameters for passes in the default pipelines. More...

#include "llvm/Passes/PassBuilder.h"

Public Member Functions

 PipelineTuningOptions ()
 Constructor sets pipeline tuning defaults based on cl::opts.
 

Public Attributes

bool LoopInterleaving
 Tuning option to set loop interleaving on/off, set based on opt level.
 
bool LoopVectorization
 Tuning option to enable/disable loop vectorization, set based on opt level.
 
bool SLPVectorization
 Tuning option to enable/disable slp loop vectorization, set based on opt level.
 
bool LoopUnrolling
 Tuning option to enable/disable loop unrolling. Its default value is true.
 
bool ForgetAllSCEVInLoopUnroll
 Tuning option to forget all SCEV loops in LoopUnroll.
 
unsigned LicmMssaOptCap
 Tuning option to cap the number of calls to retrive clobbering accesses in MemorySSA, in LICM.
 
unsigned LicmMssaNoAccForPromotionCap
 Tuning option to disable promotion to scalars in LICM with MemorySSA, if the number of access is too large.
 
bool CallGraphProfile
 Tuning option to enable/disable call graph profile.
 
bool UnifiedLTO
 
bool MergeFunctions
 Tuning option to enable/disable function merging.
 
int InlinerThreshold
 Tuning option to override the default inliner threshold.
 
bool EagerlyInvalidateAnalyses
 

Detailed Description

Tunable parameters for passes in the default pipelines.

Definition at line 44 of file PassBuilder.h.

Constructor & Destructor Documentation

◆ PipelineTuningOptions()

PipelineTuningOptions::PipelineTuningOptions ( )

Member Data Documentation

◆ CallGraphProfile

bool llvm::PipelineTuningOptions::CallGraphProfile

Tuning option to enable/disable call graph profile.

Its default value is that of the flag: -enable-npm-call-graph-profile.

Definition at line 78 of file PassBuilder.h.

Referenced by llvm::PassBuilder::buildLTODefaultPipeline(), llvm::PassBuilder::buildModuleOptimizationPipeline(), and PipelineTuningOptions().

◆ EagerlyInvalidateAnalyses

bool llvm::PipelineTuningOptions::EagerlyInvalidateAnalyses

◆ ForgetAllSCEVInLoopUnroll

bool llvm::PipelineTuningOptions::ForgetAllSCEVInLoopUnroll

Tuning option to forget all SCEV loops in LoopUnroll.

Its default value is that of the flag: -forget-scev-loop-unroll.

Definition at line 66 of file PassBuilder.h.

Referenced by llvm::PassBuilder::buildFunctionSimplificationPipeline(), llvm::PassBuilder::buildLTODefaultPipeline(), and PipelineTuningOptions().

◆ InlinerThreshold

int llvm::PipelineTuningOptions::InlinerThreshold

Tuning option to override the default inliner threshold.

Definition at line 88 of file PassBuilder.h.

Referenced by llvm::PassBuilder::buildInlinerPipeline(), and PipelineTuningOptions().

◆ LicmMssaNoAccForPromotionCap

unsigned llvm::PipelineTuningOptions::LicmMssaNoAccForPromotionCap

Tuning option to disable promotion to scalars in LICM with MemorySSA, if the number of access is too large.

Definition at line 74 of file PassBuilder.h.

Referenced by llvm::PassBuilder::buildFunctionSimplificationPipeline(), llvm::PassBuilder::buildLTODefaultPipeline(), llvm::PassBuilder::buildModuleOptimizationPipeline(), and PipelineTuningOptions().

◆ LicmMssaOptCap

unsigned llvm::PipelineTuningOptions::LicmMssaOptCap

Tuning option to cap the number of calls to retrive clobbering accesses in MemorySSA, in LICM.

Definition at line 70 of file PassBuilder.h.

Referenced by llvm::PassBuilder::buildFunctionSimplificationPipeline(), llvm::PassBuilder::buildLTODefaultPipeline(), llvm::PassBuilder::buildModuleOptimizationPipeline(), and PipelineTuningOptions().

◆ LoopInterleaving

bool llvm::PipelineTuningOptions::LoopInterleaving

Tuning option to set loop interleaving on/off, set based on opt level.

Definition at line 51 of file PassBuilder.h.

Referenced by PipelineTuningOptions().

◆ LoopUnrolling

bool llvm::PipelineTuningOptions::LoopUnrolling

Tuning option to enable/disable loop unrolling. Its default value is true.

Definition at line 62 of file PassBuilder.h.

Referenced by llvm::PassBuilder::buildFunctionSimplificationPipeline(), llvm::PassBuilder::buildLTODefaultPipeline(), and PipelineTuningOptions().

◆ LoopVectorization

bool llvm::PipelineTuningOptions::LoopVectorization

Tuning option to enable/disable loop vectorization, set based on opt level.

Definition at line 55 of file PassBuilder.h.

Referenced by PipelineTuningOptions(), and llvm::LTOCodeGenerator::setOptLevel().

◆ MergeFunctions

bool llvm::PipelineTuningOptions::MergeFunctions

Tuning option to enable/disable function merging.

Its default value is false.

Definition at line 85 of file PassBuilder.h.

Referenced by llvm::PassBuilder::buildLTODefaultPipeline(), llvm::PassBuilder::buildModuleOptimizationPipeline(), llvm::PassBuilder::buildO0DefaultPipeline(), and PipelineTuningOptions().

◆ SLPVectorization

bool llvm::PipelineTuningOptions::SLPVectorization

Tuning option to enable/disable slp loop vectorization, set based on opt level.

Definition at line 59 of file PassBuilder.h.

Referenced by PipelineTuningOptions(), and llvm::LTOCodeGenerator::setOptLevel().

◆ UnifiedLTO

bool llvm::PipelineTuningOptions::UnifiedLTO

Definition at line 81 of file PassBuilder.h.

Referenced by PipelineTuningOptions().


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