LLVM 24.0.0git
llvm::PipelineTuningOptions Class Reference

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

#include "llvm/Passes/PassBuilder.h"

Public Member Functions

LLVM_ABI PipelineTuningOptions resolve (const cl::LibraryOptionsContext &LibraryOptions) const
 Return a copy whose unset members are set from LibraryOptions.

Public Attributes

bool LoopInterleaving = true
 Tuning option to set loop interleaving on/off, set based on opt level.
bool LoopVectorization = true
 Tuning option to enable/disable loop vectorization, set based on opt level.
bool SLPVectorization = false
 Tuning option to enable/disable slp loop vectorization, set based on opt level.
bool LoopUnrolling = true
 Tuning option to enable/disable loop unrolling.
std::optional< bool > LoopInterchange
 Tuning option to enable/disable loop interchange.
bool LoopFusion = false
 Tuning option to enable/disable loop fusion.
std::optional< bool > ForgetAllSCEVInLoopUnroll
 Tuning option to forget all SCEV loops in LoopUnroll.
std::optional< unsigned > LicmMssaOptCap
 Tuning option to cap the number of calls to retrive clobbering accesses in MemorySSA, in LICM.
std::optional< unsigned > LicmMssaNoAccForPromotionCap
 Tuning option to disable promotion to scalars in LICM with MemorySSA, if the number of access is too large.
bool CallGraphProfile = true
 Tuning option to enable/disable call graph profile.
bool UnifiedLTO = false
std::optional< bool > MergeFunctions
 Tuning option to enable/disable function merging.
int InlinerThreshold = -1
 Tuning option to override the default inliner threshold.
std::optional< unsigned > MaxDevirtIterations
 Tuning option to cap how many times the inliner pipeline reruns on an SCC after devirtualizing a call.
std::optional< bool > EagerlyInvalidateAnalyses
std::optional< bool > DevirtualizeSpeculatively

Detailed Description

Tunable parameters for passes in the default pipelines.

An unset optional member takes the value of its library option in the PassBuilder's LLVMContext.

Definition at line 48 of file PassBuilder.h.

Member Function Documentation

◆ resolve()

Member Data Documentation

◆ CallGraphProfile

bool llvm::PipelineTuningOptions::CallGraphProfile = true

Tuning option to enable/disable call graph profile.

Definition at line 86 of file PassBuilder.h.

◆ DevirtualizeSpeculatively

std::optional<bool> llvm::PipelineTuningOptions::DevirtualizeSpeculatively

Definition at line 111 of file PassBuilder.h.

Referenced by resolve().

◆ EagerlyInvalidateAnalyses

std::optional<bool> llvm::PipelineTuningOptions::EagerlyInvalidateAnalyses

Definition at line 108 of file PassBuilder.h.

Referenced by resolve().

◆ ForgetAllSCEVInLoopUnroll

std::optional<bool> llvm::PipelineTuningOptions::ForgetAllSCEVInLoopUnroll

Tuning option to forget all SCEV loops in LoopUnroll.

Definition at line 75 of file PassBuilder.h.

Referenced by resolve().

◆ InlinerThreshold

int llvm::PipelineTuningOptions::InlinerThreshold = -1

Tuning option to override the default inliner threshold.

Definition at line 95 of file PassBuilder.h.

◆ LicmMssaNoAccForPromotionCap

std::optional<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 83 of file PassBuilder.h.

Referenced by resolve().

◆ LicmMssaOptCap

std::optional<unsigned> llvm::PipelineTuningOptions::LicmMssaOptCap

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

Definition at line 79 of file PassBuilder.h.

Referenced by resolve().

◆ LoopFusion

bool llvm::PipelineTuningOptions::LoopFusion = false

Tuning option to enable/disable loop fusion.

Definition at line 72 of file PassBuilder.h.

◆ LoopInterchange

std::optional<bool> llvm::PipelineTuningOptions::LoopInterchange

Tuning option to enable/disable loop interchange.

Definition at line 69 of file PassBuilder.h.

Referenced by resolve().

◆ LoopInterleaving

bool llvm::PipelineTuningOptions::LoopInterleaving = true

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

Definition at line 55 of file PassBuilder.h.

◆ LoopUnrolling

bool llvm::PipelineTuningOptions::LoopUnrolling = true

Tuning option to enable/disable loop unrolling.

Definition at line 66 of file PassBuilder.h.

◆ LoopVectorization

bool llvm::PipelineTuningOptions::LoopVectorization = true

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

Definition at line 59 of file PassBuilder.h.

Referenced by optimizeModule(), and setupOptionsForPipelineAlias().

◆ MaxDevirtIterations

std::optional<unsigned> llvm::PipelineTuningOptions::MaxDevirtIterations

Tuning option to cap how many times the inliner pipeline reruns on an SCC after devirtualizing a call.

Definition at line 99 of file PassBuilder.h.

Referenced by resolve().

◆ MergeFunctions

std::optional<bool> llvm::PipelineTuningOptions::MergeFunctions

Tuning option to enable/disable function merging.

Definition at line 92 of file PassBuilder.h.

Referenced by resolve().

◆ SLPVectorization

bool llvm::PipelineTuningOptions::SLPVectorization = false

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

Definition at line 63 of file PassBuilder.h.

Referenced by optimizeModule(), and setupOptionsForPipelineAlias().

◆ UnifiedLTO

bool llvm::PipelineTuningOptions::UnifiedLTO = false

Definition at line 89 of file PassBuilder.h.


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