clang: clang::CodeGenOptions Class Reference (original) (raw)

CodeGenOptions - Track various options which control how the code is optimized and passed to the backend. More...

#include "[clang/Basic/CodeGenOptions.h](CodeGenOptions%5F8h%5Fsource.html)"

Public Types
enum InliningMethod { NormalInlining, OnlyHintInlining, OnlyAlwaysInlining }
enum ObjCDispatchMethodKind { Legacy = 0 , NonLegacy = 1 , Mixed = 2 }
enum TLSModel { GeneralDynamicTLSModel, LocalDynamicTLSModel, InitialExecTLSModel, LocalExecTLSModel }
enum StructReturnConventionKind { SRCK_Default, SRCK_OnStack, SRCK_InRegs }
enum EmbedBitcodeKind { Embed_Off, Embed_All, Embed_Bitcode, Embed_Marker }
enum class ExtendVariableLivenessKind { None, This, All }
enum InlineAsmDialectKind { IAD_ATT, IAD_Intel }
enum DebugSrcHashKind { DSH_MD5, DSH_SHA1, DSH_SHA256, DSH_NONE }
enum class FramePointerKind { NonLeafNoReserve, None, Reserved, NonLeaf, All }
enum class ExceptionHandlingKind { None, SjLj, WinEH, DwarfCFI, Wasm }
Possible exception handling behavior. More...
enum class SwiftAsyncFramePointerKind { Auto, Always, Never, Default = Always }
enum FiniteLoopsKind { Language, Always, Never }
enum AssignmentTrackingOpts { Disabled, Enabled, Forced }
enum SanitizeDebugTrapReasonKind { None, Basic, Detailed }
enum RemarkKind { RK_Missing, RK_Enabled, RK_EnabledEverything, RK_Disabled, RK_DisabledEverything, RK_WithPattern }
Public Types inherited from clang::CodeGenOptionsBase
enum class CompatibilityKind { NotCompatible, Compatible, Benign }
For ASTs produced with different option value, signifies their level of compatibility. More...
using CFBranchLabelSchemeKind = clang::CFBranchLabelSchemeKind
using ProfileInstrKind = llvm::driver::ProfileInstrKind
using AsanDetectStackUseAfterReturnMode
using AsanDtorKind = llvm::AsanDtorKind
using VectorLibrary = llvm::driver::VectorLibrary
using ZeroCallUsedRegsKind = llvm::ZeroCallUsedRegs::ZeroCallUsedRegsKind
using WinX64EHUnwindV2Mode = llvm::WinX64EHUnwindV2Mode
using DebugCompressionType = llvm::DebugCompressionType
using EmitDwarfUnwindType = llvm::EmitDwarfUnwindType
using DebugTemplateNamesKind = llvm::codegenoptions::DebugTemplateNamesKind
using DebugInfoKind = llvm::codegenoptions::DebugInfoKind
using DebuggerKind = llvm::DebuggerKind
Public Member Functions
CodeGenOptions ()
const std::vector< std::string > & getNoBuiltinFuncs () const
bool hasSjLjExceptions () const
bool hasSEHExceptions () const
bool hasDWARFExceptions () const
bool hasWasmExceptions () const
bool hasProfileClangInstr () const
Check if Clang profile instrumenation is on.
bool hasProfileIRInstr () const
Check if IR level profile instrumentation is on.
bool hasProfileCSIRInstr () const
Check if CS IR level profile instrumentation is on.
bool hasProfileInstr () const
Check if any form of instrumentation is on.
bool hasProfileClangUse () const
Check if Clang profile use is on.
bool hasProfileIRUse () const
Check if IR level profile use is on.
bool hasProfileCSIRUse () const
Check if CSIR profile use is on.
bool hasReducedDebugInfo () const
Check if type and variable info should be emitted.
bool hasMaybeUnusedDebugInfo () const
Check if maybe unused type info should be emitted.
bool hasSanitizeCoverage () const
bool hasSanitizeBinaryMetadata () const
void resetNonModularOptions (StringRef ModuleFormat)
Reset all of the options that are not considered when building a module.
bool isLoaderReplaceableFunctionName (StringRef FuncName) const
Static Public Member Functions
static StringRef getFramePointerKindName (FramePointerKind Kind)
Public Attributes
std::string BBSections
std::string BinutilsVersion
std::string CodeModel
The code model to use (-mcmodel).
uint64_t LargeDataThreshold
The code model-specific large data threshold to use (-mlarge-data-threshold).
std::string CoverageDataFile
The filename with path we use for coverage data files.
std::string CoverageNotesFile
The filename with path we use for coverage notes files.
std::string ProfileFilterFiles
Regexes separated by a semi-colon to filter the files to instrument.
std::string ProfileExcludeFiles
Regexes separated by a semi-colon to filter the files to not instrument.
char CoverageVersion [4] = {'0', '0', '0', '0'}
The version string to put into coverage files.
std::string DebugPass
Enable additional debugging information.
std::string DebugCompilationDir
The string to embed in debug information as the current working directory.
std::string CoverageCompilationDir
The string to embed in coverage mapping as the current working directory.
std::string DwarfDebugFlags
The string to embed in the debug information for the compile unit, if non-empty.
std::string RecordCommandLine
The string containing the commandline for the llvm.commandline metadata, if non-empty.
llvm::SmallVector< std::pair< std::string, std::string >, 0 > DebugPrefixMap
llvm::SmallVector< std::pair< std::string, std::string >, 0 > CoveragePrefixMap
Prefix replacement map for source-based code coverage to remap source file paths in coverage mapping.
std::string FloatABI
The ABI to use for passing floating point arguments.
std::string DIBugsReportFilePath
The file to use for dumping bug report by Debugify for original debug info.
llvm::DenormalMode FPDenormalMode = llvm::DenormalMode::getIEEE()
The floating-point denormal mode to use.
llvm::DenormalMode FP32DenormalMode = llvm::DenormalMode::getIEEE()
The floating-point denormal mode to use, for float.
std::string LimitFloatPrecision
The float precision limit to use, if non-empty.
std::vector< BitcodeFileToLink > LinkBitcodeFiles
The files specified here are linked in to the module before optimizations.
std::string MainFileName
The user provided name for the "main file", if non-empty.
std::string SplitDwarfFile
The name for the split debug info file used for the DW_AT_[GNU_]dwo_name attribute in the skeleton CU.
std::string SplitDwarfOutput
Output filename for the split debug info, not used in the skeleton CU.
std::string ObjectFilenameForDebug
Output filename used in the COFF debug information.
llvm::Reloc::Model RelocationModel
The name of the relocation model to use.
std::string TrapFuncName
If not an empty string, trap intrinsics are lowered to calls to this function instead of to trap instructions.
std::vector< std::string > DependentLibraries
A list of dependent libraries.
std::vector< std::string > LinkerOptions
A list of linker options to embed in the object file.
std::string InstrProfileOutput
Name of the profile file to use as output for -fprofile-instr-generate, -fprofile-generate, and -fcs-profile-generate.
std::string PatchableFunctionEntrySection
Name of the patchable function entry section with -fpatchable-function-entry.
std::string SampleProfileFile
Name of the profile file to use with -fprofile-sample-use.
std::string MemoryProfileOutput
Name of the profile file to use as output for with -fmemory-profile.
std::string MemoryProfileUsePath
Name of the profile file to use as input for -fmemory-profile-use.
std::string ProfileInstrumentUsePath
Name of the profile file to use as input for -fprofile-instr-use.
std::string ProfileRemappingFile
Name of the profile remapping file to apply to the profile data supplied by -fprofile-sample-use or -fprofile-instr-use.
std::string ThinLTOIndexFile
Name of the function summary index file to use for ThinLTO function importing.
std::string ThinLinkBitcodeFile
Name of a file that can optionally be written with minimized bitcode to be used as input for the ThinLTO thin link step, which only needs the summary and module symbol table (and not, e.g.
std::string SaveTempsFilePrefix
Prefix to use for -save-temps output.
std::string CudaGpuBinaryFileName
Name of file passed with -fcuda-include-gpubinary option to forward to CUDA runtime back-end for incorporating them into host-side object file.
std::vector< std::string > OffloadObjects
List of filenames passed in using the -fembed-offload-object option.
std::string OptRecordFile
The name of the file to which the backend should save YAML optimization records.
std::string OptRecordPasses
The regex that filters the passes that should be saved to the optimization records.
std::string OptRecordFormat
The format used for serializing remarks (default: YAML)
std::string SymbolPartition
The name of the partition that symbols are assigned to, specified with -fsymbol-partition (see https://lld.llvm.org/Partitions.html).
std::string UniqueSourceFileIdentifier
If non-empty, allow the compiler to assume that the given source file identifier is unique at link time.
OptRemark OptimizationRemark
Selected optimizations for which we should enable optimization remarks.
OptRemark OptimizationRemarkMissed
Selected optimizations for which we should enable missed optimization remarks.
OptRemark OptimizationRemarkAnalysis
Selected optimizations for which we should enable optimization analyses.
SanitizerSet SanitizeRecover
Set of sanitizer checks that are non-fatal (i.e.
SanitizerSet SanitizeTrap
Set of sanitizer checks that trap rather than diagnose.
SanitizerSet SanitizeMergeHandlers
Set of sanitizer checks that can merge handlers (smaller code size at the expense of debuggability).
SanitizerMaskCutoffs SanitizeSkipHotCutoffs
Set of thresholds in a range [0.0, 1.0]: the top hottest code responsible for the given fraction of PGO counters will be excluded from sanitization (0.0 [default] to skip none, 1.0 to skip all).
SanitizerSet SanitizeAnnotateDebugInfo
Set of sanitizer checks, for which the instrumentation will be annotated with extra debug info.
std::optional< double > AllowRuntimeCheckSkipHotCutoff
std::vector< uint8_t > CmdArgs
List of backend command-line options for -fembed-bitcode.
std::vector< std::string > NoBuiltinFuncs
A list of all -fno-builtin-* function names (e.g., memset).
std::vector< std::string > Reciprocals
PointerAuthOptions PointerAuth
Configuration for pointer-signing.
std::string PreferVectorWidth
The preferred width for auto-vectorization transforms.
XRayInstrSet XRayInstrumentationBundle
Set of XRay instrumentation kinds to emit.
std::vector< std::string > DefaultFunctionAttrs
std::vector< std::string > PassPlugins
List of dynamic shared object files to be loaded as pass plugins.
std::vector< std::function< void(llvm::PassBuilder &)> > PassBuilderCallbacks
List of pass builder callbacks.
std::vector< std::string > TocDataVarsUserSpecified
List of global variables explicitly specified by the user as toc-data.
std::vector< std::string > NoTocDataVars
List of global variables that over-ride the toc-data default.
std::vector< std::string > SanitizeCoverageAllowlistFiles
Path to allowlist file specifying which objects (files, functions) should exclusively be instrumented by sanitizer coverage pass.
std::string StackProtectorGuard
The guard style used for stack protector to get a initial value, this value usually be gotten from TLS or get from __stack_chk_guard, or some other styles we may implement in the future.
std::string StackProtectorGuardReg
The TLS base register when StackProtectorGuard is "tls", or register used to store the stack canary for "sysreg".
std::string StackProtectorGuardSymbol
Specify a symbol to be the guard value.
std::vector< std::string > SanitizeCoverageIgnorelistFiles
Path to ignorelist file specifying which objects (files, functions) listed for instrumentation by sanitizer coverage pass should actually not be instrumented.
std::vector< std::string > SanitizeMetadataIgnorelistFiles
Path to ignorelist file specifying which objects (files, functions) listed for instrumentation by sanitizer binary metadata pass should not be instrumented.
llvm::KCFIHashAlgorithm SanitizeKcfiHash
Hash algorithm to use for KCFI type IDs.
std::string StackUsageOutput
Name of the stack usage file (i.e., .su file) if user passes -fstack-usage.
const char * Argv0 = nullptr
Executable and command-line used to create a given CompilerInvocation.
std::vector< std::string > CommandLineArgs
std::optional< uint64_t > DiagnosticsHotnessThreshold = 0
The minimum hotness value a diagnostic needs in order to be included in optimization diagnostics.
std::optional< uint32_t > DiagnosticsMisExpectTolerance = 0
The maximum percentage profiling weights can deviate from the expected values in order to be included in misexpect diagnostics.
std::string AsSecureLogFile
The name of a file to use with .secure_log_unique directives.
std::vector< std::string > LoaderReplaceableFunctionNames
A list of functions that are replacable by the loader.
std::string MSSecureHotPatchFunctionsFile
The name of a file that contains functions which will be compiled for hotpatching.
std::vector< std::string > MSSecureHotPatchFunctionsList
A list of functions which will be compiled for hotpatching.

CodeGenOptions - Track various options which control how the code is optimized and passed to the backend.

Definition at line 89 of file CodeGenOptions.h.

AssignmentTrackingOpts

DebugSrcHashKind

Enumerator
DSH_MD5
DSH_SHA1
DSH_SHA256
DSH_NONE

Definition at line 134 of file CodeGenOptions.h.

EmbedBitcodeKind

Enumerator
Embed_Off
Embed_All
Embed_Bitcode
Embed_Marker

Definition at line 116 of file CodeGenOptions.h.

ExceptionHandlingKind

Possible exception handling behavior.

Enumerator
None
SjLj
WinEH
DwarfCFI
Wasm

Definition at line 186 of file CodeGenOptions.h.

ExtendVariableLivenessKind

FiniteLoopsKind

FramePointerKind

Enumerator
NonLeafNoReserve
None
Reserved
NonLeaf
All

Definition at line 158 of file CodeGenOptions.h.

InlineAsmDialectKind

InliningMethod

Enumerator
NormalInlining
OnlyHintInlining
OnlyAlwaysInlining

Definition at line 91 of file CodeGenOptions.h.

ObjCDispatchMethodKind

RemarkKind

Enumerator
RK_Missing
RK_Enabled
RK_EnabledEverything
RK_Disabled
RK_DisabledEverything
RK_WithPattern

Definition at line 387 of file CodeGenOptions.h.

SanitizeDebugTrapReasonKind

Enumerator
None Trap Messages are omitted. This offers the smallest debug info size but at the cost of making traps hard to debug.
Basic Trap Message is fixed per SanitizerKind. Produces smaller debug info than Detailed but is not as helpful for debugging.
Detailed Trap Message includes more context (e.g. the expression being overflowed). This is more helpful for debugging but produces larger debug info than Basic.

Definition at line 207 of file CodeGenOptions.h.

StructReturnConventionKind

Enumerator
SRCK_Default
SRCK_OnStack
SRCK_InRegs

Definition at line 110 of file CodeGenOptions.h.

SwiftAsyncFramePointerKind

TLSModel

Enumerator
GeneralDynamicTLSModel
LocalDynamicTLSModel
InitialExecTLSModel
LocalExecTLSModel

Definition at line 103 of file CodeGenOptions.h.

clang::CodeGenOptions::CodeGenOptions ( )

getFramePointerKindName()

StringRef clang::CodeGenOptions::getFramePointerKindName ( FramePointerKind Kind) inlinestatic

getNoBuiltinFuncs()

const std::vector< std::string > & clang::CodeGenOptions::getNoBuiltinFuncs ( ) const inline

hasDWARFExceptions()

bool clang::CodeGenOptions::hasDWARFExceptions ( ) const inline

hasMaybeUnusedDebugInfo()

bool clang::CodeGenOptions::hasMaybeUnusedDebugInfo ( ) const inline

Check if maybe unused type info should be emitted.

Definition at line 637 of file CodeGenOptions.h.

hasProfileClangInstr()

bool clang::CodeGenOptions::hasProfileClangInstr ( ) const inline

hasProfileClangUse()

bool clang::CodeGenOptions::hasProfileClangUse ( ) const inline

hasProfileCSIRInstr()

bool clang::CodeGenOptions::hasProfileCSIRInstr ( ) const inline

Check if CS IR level profile instrumentation is on.

Definition at line 605 of file CodeGenOptions.h.

hasProfileCSIRUse()

bool clang::CodeGenOptions::hasProfileCSIRUse ( ) const inline

hasProfileInstr()

bool clang::CodeGenOptions::hasProfileInstr ( ) const inline

hasProfileIRInstr()

bool clang::CodeGenOptions::hasProfileIRInstr ( ) const inline

Check if IR level profile instrumentation is on.

Definition at line 600 of file CodeGenOptions.h.

hasProfileIRUse()

bool clang::CodeGenOptions::hasProfileIRUse ( ) const inline

hasReducedDebugInfo()

bool clang::CodeGenOptions::hasReducedDebugInfo ( ) const inline

Check if type and variable info should be emitted.

Definition at line 632 of file CodeGenOptions.h.

hasSanitizeBinaryMetadata()

bool clang::CodeGenOptions::hasSanitizeBinaryMetadata ( ) const inline

hasSanitizeCoverage()

bool clang::CodeGenOptions::hasSanitizeCoverage ( ) const inline

hasSEHExceptions()

bool clang::CodeGenOptions::hasSEHExceptions ( ) const inline

hasSjLjExceptions()

bool clang::CodeGenOptions::hasSjLjExceptions ( ) const inline

hasWasmExceptions()

bool clang::CodeGenOptions::hasWasmExceptions ( ) const inline

isLoaderReplaceableFunctionName()

bool clang::CodeGenOptions::isLoaderReplaceableFunctionName ( StringRef FuncName) const inline

resetNonModularOptions()

void clang::CodeGenOptions::resetNonModularOptions ( StringRef ModuleFormat )

AllowRuntimeCheckSkipHotCutoff

std::optional<double> clang::CodeGenOptions::AllowRuntimeCheckSkipHotCutoff

Argv0

const char* clang::CodeGenOptions::Argv0 = nullptr

AsSecureLogFile

std::string clang::CodeGenOptions::AsSecureLogFile

BBSections

std::string clang::CodeGenOptions::BBSections

BinutilsVersion

std::string clang::CodeGenOptions::BinutilsVersion

CmdArgs

std::vector<uint8_t> clang::CodeGenOptions::CmdArgs

CodeModel

std::string clang::CodeGenOptions::CodeModel

CommandLineArgs

std::vectorstd::string clang::CodeGenOptions::CommandLineArgs

CoverageCompilationDir

std::string clang::CodeGenOptions::CoverageCompilationDir

CoverageDataFile

std::string clang::CodeGenOptions::CoverageDataFile

CoverageNotesFile

std::string clang::CodeGenOptions::CoverageNotesFile

CoveragePrefixMap

llvm::SmallVector<std::pair<std::string, std::string>, 0> clang::CodeGenOptions::CoveragePrefixMap

Prefix replacement map for source-based code coverage to remap source file paths in coverage mapping.

Definition at line 262 of file CodeGenOptions.h.

CoverageVersion

char clang::CodeGenOptions::CoverageVersion[4] = {'0', '0', '0', '0'}

CudaGpuBinaryFileName

std::string clang::CodeGenOptions::CudaGpuBinaryFileName

Name of file passed with -fcuda-include-gpubinary option to forward to CUDA runtime back-end for incorporating them into host-side object file.

Definition at line 362 of file CodeGenOptions.h.

DebugCompilationDir

std::string clang::CodeGenOptions::DebugCompilationDir

DebugPass

std::string clang::CodeGenOptions::DebugPass

DebugPrefixMap

llvm::SmallVector<std::pair<std::string, std::string>, 0> clang::CodeGenOptions::DebugPrefixMap

DefaultFunctionAttrs

std::vectorstd::string clang::CodeGenOptions::DefaultFunctionAttrs

DependentLibraries

std::vectorstd::string clang::CodeGenOptions::DependentLibraries

DiagnosticsHotnessThreshold

std::optional<uint64_t> clang::CodeGenOptions::DiagnosticsHotnessThreshold = 0

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

The threshold is an Optional value, which maps to one of the 3 states:

  1. 0 => threshold disabled. All remarks will be printed.
  2. positive int => manual threshold by user. Remarks with hotness exceed threshold will be printed.
  3. None => 'auto' threshold by user. The actual value is not available at command line, but will be synced with hotness threshold from profile summary during compilation.

If threshold option is not specified, it is disabled by default.

Definition at line 544 of file CodeGenOptions.h.

DiagnosticsMisExpectTolerance

std::optional<uint32_t> clang::CodeGenOptions::DiagnosticsMisExpectTolerance = 0

The maximum percentage profiling weights can deviate from the expected values in order to be included in misexpect diagnostics.

Definition at line 548 of file CodeGenOptions.h.

DIBugsReportFilePath

std::string clang::CodeGenOptions::DIBugsReportFilePath

The file to use for dumping bug report by Debugify for original debug info.

Definition at line 269 of file CodeGenOptions.h.

DwarfDebugFlags

std::string clang::CodeGenOptions::DwarfDebugFlags

FloatABI

std::string clang::CodeGenOptions::FloatABI

FP32DenormalMode

llvm::DenormalMode clang::CodeGenOptions::FP32DenormalMode = llvm::DenormalMode::getIEEE()

FPDenormalMode

llvm::DenormalMode clang::CodeGenOptions::FPDenormalMode = llvm::DenormalMode::getIEEE()

InstrProfileOutput

std::string clang::CodeGenOptions::InstrProfileOutput

LargeDataThreshold

uint64_t clang::CodeGenOptions::LargeDataThreshold

LimitFloatPrecision

std::string clang::CodeGenOptions::LimitFloatPrecision

LinkBitcodeFiles

The files specified here are linked in to the module before optimizations.

Definition at line 294 of file CodeGenOptions.h.

LinkerOptions

std::vectorstd::string clang::CodeGenOptions::LinkerOptions

A list of linker options to embed in the object file.

Definition at line 322 of file CodeGenOptions.h.

LoaderReplaceableFunctionNames

std::vectorstd::string clang::CodeGenOptions::LoaderReplaceableFunctionNames

MainFileName

std::string clang::CodeGenOptions::MainFileName

MemoryProfileOutput

std::string clang::CodeGenOptions::MemoryProfileOutput

Name of the profile file to use as output for with -fmemory-profile.

Definition at line 336 of file CodeGenOptions.h.

MemoryProfileUsePath

std::string clang::CodeGenOptions::MemoryProfileUsePath

Name of the profile file to use as input for -fmemory-profile-use.

Definition at line 339 of file CodeGenOptions.h.

MSSecureHotPatchFunctionsFile

std::string clang::CodeGenOptions::MSSecureHotPatchFunctionsFile

MSSecureHotPatchFunctionsList

std::vectorstd::string clang::CodeGenOptions::MSSecureHotPatchFunctionsList

NoBuiltinFuncs

std::vectorstd::string clang::CodeGenOptions::NoBuiltinFuncs

NoTocDataVars

std::vectorstd::string clang::CodeGenOptions::NoTocDataVars

List of global variables that over-ride the toc-data default.

Definition at line 487 of file CodeGenOptions.h.

ObjectFilenameForDebug

std::string clang::CodeGenOptions::ObjectFilenameForDebug

OffloadObjects

std::vectorstd::string clang::CodeGenOptions::OffloadObjects

List of filenames passed in using the -fembed-offload-object option.

These are offloading binaries containing device images and metadata.

Definition at line 366 of file CodeGenOptions.h.

Referenced by clang::EmbedObject().

OptimizationRemark

OptRemark clang::CodeGenOptions::OptimizationRemark

Selected optimizations for which we should enable optimization remarks.

Transformation passes whose name matches the contained (optional) regular expression (and support this feature), will emit a diagnostic whenever they perform a transformation.

Definition at line 419 of file CodeGenOptions.h.

OptimizationRemarkAnalysis

OptRemark clang::CodeGenOptions::OptimizationRemarkAnalysis

Selected optimizations for which we should enable optimization analyses.

Transformation passes whose name matches the contained (optional) regular expression (and support this feature), will emit a diagnostic whenever they want to explain why they decided to apply or not apply a given transformation.

Definition at line 432 of file CodeGenOptions.h.

OptimizationRemarkMissed

OptRemark clang::CodeGenOptions::OptimizationRemarkMissed

Selected optimizations for which we should enable missed optimization remarks.

Transformation passes whose name matches the contained (optional) regular expression (and support this feature), will emit a diagnostic whenever they tried but failed to perform a transformation.

Definition at line 425 of file CodeGenOptions.h.

OptRecordFile

std::string clang::CodeGenOptions::OptRecordFile

OptRecordFormat

std::string clang::CodeGenOptions::OptRecordFormat

OptRecordPasses

std::string clang::CodeGenOptions::OptRecordPasses

PassBuilderCallbacks

std::vector<std::function<void(llvm::PassBuilder &)> > clang::CodeGenOptions::PassBuilderCallbacks

PassPlugins

std::vectorstd::string clang::CodeGenOptions::PassPlugins

List of dynamic shared object files to be loaded as pass plugins.

Definition at line 478 of file CodeGenOptions.h.

PatchableFunctionEntrySection

std::string clang::CodeGenOptions::PatchableFunctionEntrySection

Name of the patchable function entry section with -fpatchable-function-entry.

Definition at line 330 of file CodeGenOptions.h.

PointerAuth

PreferVectorWidth

std::string clang::CodeGenOptions::PreferVectorWidth

ProfileExcludeFiles

std::string clang::CodeGenOptions::ProfileExcludeFiles

ProfileFilterFiles

std::string clang::CodeGenOptions::ProfileFilterFiles

ProfileInstrumentUsePath

std::string clang::CodeGenOptions::ProfileInstrumentUsePath

ProfileRemappingFile

std::string clang::CodeGenOptions::ProfileRemappingFile

Reciprocals

std::vectorstd::string clang::CodeGenOptions::Reciprocals

RecordCommandLine

std::string clang::CodeGenOptions::RecordCommandLine

The string containing the commandline for the llvm.commandline metadata, if non-empty.

Definition at line 256 of file CodeGenOptions.h.

RelocationModel

llvm::Reloc::Model clang::CodeGenOptions::RelocationModel

SampleProfileFile

std::string clang::CodeGenOptions::SampleProfileFile

SanitizeAnnotateDebugInfo

SanitizerSet clang::CodeGenOptions::SanitizeAnnotateDebugInfo

Set of sanitizer checks, for which the instrumentation will be annotated with extra debug info.

Definition at line 452 of file CodeGenOptions.h.

SanitizeCoverageAllowlistFiles

std::vectorstd::string clang::CodeGenOptions::SanitizeCoverageAllowlistFiles

Path to allowlist file specifying which objects (files, functions) should exclusively be instrumented by sanitizer coverage pass.

Definition at line 492 of file CodeGenOptions.h.

Referenced by addSanitizers().

SanitizeCoverageIgnorelistFiles

std::vectorstd::string clang::CodeGenOptions::SanitizeCoverageIgnorelistFiles

Path to ignorelist file specifying which objects (files, functions) listed for instrumentation by sanitizer coverage pass should actually not be instrumented.

Definition at line 511 of file CodeGenOptions.h.

Referenced by addSanitizers().

SanitizeKcfiHash

llvm::KCFIHashAlgorithm clang::CodeGenOptions::SanitizeKcfiHash

SanitizeMergeHandlers

Set of sanitizer checks that can merge handlers (smaller code size at the expense of debuggability).

Definition at line 443 of file CodeGenOptions.h.

SanitizeMetadataIgnorelistFiles

std::vectorstd::string clang::CodeGenOptions::SanitizeMetadataIgnorelistFiles

Path to ignorelist file specifying which objects (files, functions) listed for instrumentation by sanitizer binary metadata pass should not be instrumented.

Definition at line 516 of file CodeGenOptions.h.

Referenced by addSanitizers().

SanitizeRecover

Set of sanitizer checks that are non-fatal (i.e.

execution should be continued when possible).

Definition at line 436 of file CodeGenOptions.h.

Referenced by addSanitizers().

SanitizeSkipHotCutoffs

Set of thresholds in a range [0.0, 1.0]: the top hottest code responsible for the given fraction of PGO counters will be excluded from sanitization (0.0 [default] to skip none, 1.0 to skip all).

Definition at line 448 of file CodeGenOptions.h.

Referenced by addSanitizers().

SanitizeTrap

Set of sanitizer checks that trap rather than diagnose.

Definition at line 439 of file CodeGenOptions.h.

SaveTempsFilePrefix

std::string clang::CodeGenOptions::SaveTempsFilePrefix

SplitDwarfFile

std::string clang::CodeGenOptions::SplitDwarfFile

SplitDwarfOutput

std::string clang::CodeGenOptions::SplitDwarfOutput

Output filename for the split debug info, not used in the skeleton CU.

Definition at line 306 of file CodeGenOptions.h.

StackProtectorGuard

std::string clang::CodeGenOptions::StackProtectorGuard

The guard style used for stack protector to get a initial value, this value usually be gotten from TLS or get from __stack_chk_guard, or some other styles we may implement in the future.

Definition at line 497 of file CodeGenOptions.h.

StackProtectorGuardReg

std::string clang::CodeGenOptions::StackProtectorGuardReg

The TLS base register when StackProtectorGuard is "tls", or register used to store the stack canary for "sysreg".

On x86 this can be "fs" or "gs". On AArch64 this can only be "sp_el0".

Definition at line 503 of file CodeGenOptions.h.

StackProtectorGuardSymbol

std::string clang::CodeGenOptions::StackProtectorGuardSymbol

StackUsageOutput

std::string clang::CodeGenOptions::StackUsageOutput

Name of the stack usage file (i.e., .su file) if user passes -fstack-usage.

If empty, it can be implied that -fstack-usage is not passed on the command line.

Definition at line 524 of file CodeGenOptions.h.

Referenced by initTargetOptions().

SymbolPartition

std::string clang::CodeGenOptions::SymbolPartition

ThinLinkBitcodeFile

std::string clang::CodeGenOptions::ThinLinkBitcodeFile

Name of a file that can optionally be written with minimized bitcode to be used as input for the ThinLTO thin link step, which only needs the summary and module symbol table (and not, e.g.

any debug metadata).

Definition at line 355 of file CodeGenOptions.h.

ThinLTOIndexFile

std::string clang::CodeGenOptions::ThinLTOIndexFile

TocDataVarsUserSpecified

std::vectorstd::string clang::CodeGenOptions::TocDataVarsUserSpecified

TrapFuncName

std::string clang::CodeGenOptions::TrapFuncName

UniqueSourceFileIdentifier

std::string clang::CodeGenOptions::UniqueSourceFileIdentifier

If non-empty, allow the compiler to assume that the given source file identifier is unique at link time.

Definition at line 385 of file CodeGenOptions.h.

XRayInstrumentationBundle

XRayInstrSet clang::CodeGenOptions::XRayInstrumentationBundle


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