LTO configuration. A linker can configure LTO by setting fields in this data structure and passing it to the lto::LTO constructor.

Synopsis

Declared in <llvm/LTO/Config.h>

struct Config;

Type Aliases

Name

Description

CombinedIndexHookFn

Callback invoked after per‐module indexes are combined.

ModuleHookFn

Callback invoked on a module at a point in the LTO pipeline.

Enums

Name

Description

VisScheme

Visibility scheme for non‐imported definitions.

Member Functions

Name

Description

addSaveTemps

Configure this Config to write temporary files for each LTO phase.

Data Members

Name

Description

AAPipeline

Alias analysis pipeline string for the new pass manager.

AddFSDiscriminator

Add FSAFDO discriminators.

AllVtablesHaveTypeInfos

If all native vtables have corresponding type infos, allow usage of RTTI to block devirtualization on types used in native files.

AlwaysEmitRegularLTOObj

Always emit a Regular LTO object even when empty.

CGFileType

Output file type produced by the code generator.

CGOptLevel

Optimization level for the code generator.

CPU

Target CPU name.

CSIRProfile

Context Sensitive PGO profile path.

CodeGenOnly

Disable entirely the optimizer, including importing for ThinLTO

CodeModel

Code model for code generation.

CombinedIndexHook

Combined index hook for ThinLTO.

DebugPassManager

Whether to emit the pass manager debuggging informations.

DefaultTriple

Setting this field will replace unspecified target triples in input files with this triple.

DiagHandler

Diagnostic handler callback for LTO.

DisableVerify

Skip IR verification when true.

Dtlto

This flag is used as one of parameters to calculate cache entries and to ensure that in‐process cache and out‐of‐process (DTLTO) cache are distinguished.

DwoDir

The directory to store .dwo files.

Freestanding

Flag to indicate that the optimizer should not assume builtins are present on the target.

GetCacheKeyOutputString

Callback that provides storage for a bitcode module's cache key.

GetImportsListOutputArray

Callback that provides storage for a bitcode module's imports list.

GetSummaryIndexOutputStream

Callback that provides a stream for a bitcode module's summary index.

HasWholeProgramVisibility

Asserts whether we can assume whole program visibility during the LTO link.

KeepSymbolNameCopies

Whether LTO creates its own copies of symbol names.

LoadedPassPlugins

Pass plugins already loaded by the LTO client.

MAttrs

Target feature attributes (e.g. +sse4.2).

MllvmArgs

Extra ‐mllvm arguments passed through to LLVM.

OptLevel

Optimization level for the middle‐end optimizer.

OptPipeline

Pass pipeline string for the middle‐end optimizer.

Options

Target options for code generation.

OverrideTriple

Setting this field will replace target triples in input files with this triple.

PGOWarnMismatch

Turn on/off the warning about a hash mismatch in the PGO profile data.

PTO

Tunable parameters for passes in the default pipelines.

PassPluginFilenames

Filenames of pass plugins to load and register.

PostImportModuleHook

This hook is called after importing from other modules (ThinLTO‐specific).

PostInternalizeModuleHook

This hook is called after internalizing the module.

PostOptModuleHook

This module hook is called after optimization is complete.

PostPromoteModuleHook

This hook is called after promoting any internal functions (ThinLTO‐specific).

PreCodeGenModuleHook

Module hook called before code generation.

PreCodeGenPassesHook

For adding passes that run right before codegen.

PreOptModuleHook

This module hook is called after linking (regular LTO) or loading (ThinLTO) the module, before modifying it.

ProfileRemapping

Name remapping file for profile data.

RelocModel

Relocation model for code generation.

RemarksFilename

Optimization remarks file path.

RemarksFormat

The format used for serializing remarks (default: YAML).

RemarksHotnessThreshold

The minimum hotness value a diagnostic needs in order to be included in optimization diagnostics.

RemarksPasses

Optimization remarks pass filter.

RemarksWithHotness

Whether to emit optimization remarks with hotness informations.

ResolutionFile

Stream for writing symbol resolutions in llvm‐lto2 flag format.

RunCSIRInstr

Run PGO context sensitive IR instrumentation.

SampleProfile

Sample PGO profile path.

ShouldDiscardValueNames

Whether to discard value names from the IR.

SplitDwarfFile

Split DWARF .dwo file name for the skeleton CU attribute.

SplitDwarfOutput

Output path for writing a .dwo file.

StatsFile

Statistics output file path.

ThinLTOModulesToCompile

Specific thinLTO modules to compile.

TimeTraceEnabled

Time trace enabled.

TimeTraceGranularity

Time trace granularity.

ValidateAllVtablesHaveTypeInfos

We're validating that all native vtables have corresponding type infos.

VerifyEach

Verify the IR after each pass when true.

VisibilityScheme

Visibility scheme for non‐imported definitions.

Non-Member Functions

Name

Description

backend

Runs a regular LTO backend. The regular LTO backend can also act as the regular LTO phase of ThinLTO, which may need to access the combined index.

opt

Runs middle‐end LTO optimizations on Mod.

thinBackend

Runs a ThinLTO backend.

::llvm::computeLTOCacheKey

Compute a unique LTO cache key for a module.

::llvm::thinLTOResolvePrevailingInIndex

Resolve linkage for prevailing symbols in the index.

Created with MrDocs