LLVM  13.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"

Collaboration diagram for llvm::PipelineTuningOptions:
Collaboration graph
[legend]

Public Member Functions

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

Public Attributes

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

Detailed Description

Tunable parameters for passes in the default pipelines.

Definition at line 86 of file PassBuilder.h.

Constructor & Destructor Documentation

◆ PipelineTuningOptions()

PipelineTuningOptions::PipelineTuningOptions ( )

Constructor sets pipeline tuning defaults based on cl::opts.

Each option can be set in the PassBuilder when using a LLVM as a library.

Definition at line 285 of file PassBuilder.cpp.

References CallGraphProfile, Coroutines, ForgetAllSCEVInLoopUnroll, llvm::ForgetSCEVInLoopUnroll, LicmMssaNoAccForPromotionCap, LicmMssaOptCap, LoopInterleaving, LoopUnrolling, LoopVectorization, MergeFunctions, llvm::SetLicmMssaNoAccForPromotionCap, llvm::SetLicmMssaOptCap, and SLPVectorization.

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 126 of file PassBuilder.h.

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

◆ Coroutines

bool llvm::PipelineTuningOptions::Coroutines

Tuning option to enable/disable coroutine intrinsic lowering.

Its default value is false. Frontends such as Clang may enable this conditionally. For example, Clang enables this option if the flags -std=c++2a or above, or -fcoroutines-ts, have been specified.

Definition at line 114 of file PassBuilder.h.

Referenced by llvm::PassBuilder::buildFunctionSimplificationPipeline(), llvm::PassBuilder::buildInlinerPipeline(), llvm::PassBuilder::buildModuleOptimizationPipeline(), llvm::PassBuilder::buildModuleSimplificationPipeline(), llvm::PassBuilder::buildO0DefaultPipeline(), llvm::PassBuilder::buildThinLTOPreLinkDefaultPipeline(), and PipelineTuningOptions().

◆ 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 108 of file PassBuilder.h.

Referenced by llvm::PassBuilder::buildFunctionSimplificationPipeline(), llvm::PassBuilder::buildLTODefaultPipeline(), 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 122 of file PassBuilder.h.

Referenced by llvm::PassBuilder::buildFunctionSimplificationPipeline(), llvm::PassBuilder::buildLTODefaultPipeline(), 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 118 of file PassBuilder.h.

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

◆ LoopInterleaving

bool llvm::PipelineTuningOptions::LoopInterleaving

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

Definition at line 93 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 104 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 97 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 130 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 101 of file PassBuilder.h.

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


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