clang 20.0.0git
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
clang::CodeGenOptions Class Reference

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

#include "clang/Basic/CodeGenOptions.h"

Inheritance diagram for clang::CodeGenOptions:
Inheritance graph
[legend]

Classes

struct  BitcodeFileToLink
 
struct  OptRemark
 Optimization remark with an optional regular expression pattern. More...
 

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  ProfileInstrKind { ProfileNone , ProfileClangInstr , ProfileIRInstr , ProfileCSIRInstr }
 
enum  EmbedBitcodeKind { Embed_Off , Embed_All , Embed_Bitcode , Embed_Marker }
 
enum  InlineAsmDialectKind { IAD_ATT , IAD_Intel }
 
enum  DebugSrcHashKind { DSH_MD5 , DSH_SHA1 , DSH_SHA256 }
 
enum class  FramePointerKind { None , Reserved , NonLeaf , All }
 
enum class  SwiftAsyncFramePointerKind { Auto , Always , Never , Default = Always }
 
enum  FiniteLoopsKind { Language , Always , Never }
 
enum  AssignmentTrackingOpts { Disabled , Enabled , Forced }
 
enum  RemarkKind {
  RK_Missing , RK_Enabled , RK_EnabledEverything , RK_Disabled ,
  RK_DisabledEverything , RK_WithPattern
}
 

Public Member Functions

 CodeGenOptions ()
 
const std::vector< std::string > & getNoBuiltinFuncs () 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.
 

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]
 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< BitcodeFileToLinkLinkBitcodeFiles
 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 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).
 
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).
 
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.
 
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.
 

Detailed Description

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

Definition at line 56 of file CodeGenOptions.h.

Member Enumeration Documentation

◆ AssignmentTrackingOpts

Enumerator
Disabled 
Enabled 
Forced 

Definition at line 161 of file CodeGenOptions.h.

◆ DebugSrcHashKind

Enumerator
DSH_MD5 
DSH_SHA1 
DSH_SHA256 

Definition at line 103 of file CodeGenOptions.h.

◆ EmbedBitcodeKind

Enumerator
Embed_Off 
Embed_All 
Embed_Bitcode 
Embed_Marker 

Definition at line 91 of file CodeGenOptions.h.

◆ FiniteLoopsKind

Enumerator
Language 
Always 
Never 

Definition at line 155 of file CodeGenOptions.h.

◆ FramePointerKind

Enumerator
None 
Reserved 
NonLeaf 
All 

Definition at line 126 of file CodeGenOptions.h.

◆ InlineAsmDialectKind

Enumerator
IAD_ATT 
IAD_Intel 

Definition at line 98 of file CodeGenOptions.h.

◆ InliningMethod

Enumerator
NormalInlining 
OnlyHintInlining 
OnlyAlwaysInlining 

Definition at line 58 of file CodeGenOptions.h.

◆ ObjCDispatchMethodKind

Enumerator
Legacy 
NonLegacy 
Mixed 

Definition at line 64 of file CodeGenOptions.h.

◆ ProfileInstrKind

Enumerator
ProfileNone 
ProfileClangInstr 
ProfileIRInstr 
ProfileCSIRInstr 

Definition at line 83 of file CodeGenOptions.h.

◆ RemarkKind

Enumerator
RK_Missing 
RK_Enabled 
RK_EnabledEverything 
RK_Disabled 
RK_DisabledEverything 
RK_WithPattern 

Definition at line 329 of file CodeGenOptions.h.

◆ StructReturnConventionKind

Enumerator
SRCK_Default 
SRCK_OnStack 
SRCK_InRegs 

Definition at line 77 of file CodeGenOptions.h.

◆ SwiftAsyncFramePointerKind

Enumerator
Auto 
Always 
Never 
Default 

Definition at line 148 of file CodeGenOptions.h.

◆ TLSModel

Enumerator
GeneralDynamicTLSModel 
LocalDynamicTLSModel 
InitialExecTLSModel 
LocalExecTLSModel 

Definition at line 70 of file CodeGenOptions.h.

Constructor & Destructor Documentation

◆ CodeGenOptions()

clang::CodeGenOptions::CodeGenOptions ( )

Definition at line 14 of file CodeGenOptions.cpp.

References CoverageVersion, memcpy(), and RelocationModel.

Member Function Documentation

◆ getFramePointerKindName()

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

Definition at line 133 of file CodeGenOptions.h.

References All, Kind, None, NonLeaf, and Reserved.

Referenced by getTrivialDefaultFunctionAttributes().

◆ getNoBuiltinFuncs()

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

Definition at line 491 of file CodeGenOptions.h.

References NoBuiltinFuncs.

◆ hasMaybeUnusedDebugInfo()

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

Check if maybe unused type info should be emitted.

Definition at line 533 of file CodeGenOptions.h.

Referenced by clang::CodeGen::CGDebugInfo::EmitAndRetainType().

◆ hasProfileClangInstr()

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

◆ hasProfileClangUse()

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

Check if Clang profile use is on.

Definition at line 514 of file CodeGenOptions.h.

References ProfileClangInstr.

Referenced by clang::CodeGen::CodeGenModule::CodeGenModule(), and InitializePGOProfileMacros().

◆ hasProfileCSIRInstr()

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

Check if CS IR level profile instrumentation is on.

Definition at line 506 of file CodeGenOptions.h.

References ProfileCSIRInstr.

Referenced by runThinLTOBackend().

◆ hasProfileCSIRUse()

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

Check if CSIR profile use is on.

Definition at line 525 of file CodeGenOptions.h.

References ProfileCSIRInstr.

Referenced by runThinLTOBackend().

◆ hasProfileInstr()

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

Check if any form of instrumentation is on.

Definition at line 511 of file CodeGenOptions.h.

References ProfileNone.

Referenced by InitializePGOProfileMacros().

◆ hasProfileIRInstr()

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

Check if IR level profile instrumentation is on.

Definition at line 501 of file CodeGenOptions.h.

References ProfileIRInstr.

◆ hasProfileIRUse()

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

Check if IR level profile use is on.

Definition at line 519 of file CodeGenOptions.h.

References ProfileCSIRInstr, and ProfileIRInstr.

Referenced by InitializePGOProfileMacros().

◆ hasReducedDebugInfo()

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

◆ hasSanitizeBinaryMetadata()

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

Definition at line 545 of file CodeGenOptions.h.

Referenced by addSanitizers().

◆ hasSanitizeCoverage()

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

Definition at line 538 of file CodeGenOptions.h.

Referenced by addSanitizers(), and FixupInvocation().

◆ resetNonModularOptions()

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

Reset all of the options that are not considered when building a module.

Definition at line 23 of file CodeGenOptions.cpp.

References CoverageVersion, memcpy(), and RelocationModel.

Referenced by clang::CompilerInvocation::resetNonModularOptions().

Member Data Documentation

◆ Argv0

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

Executable and command-line used to create a given CompilerInvocation.

Most of the time this will be the full -cc1 command.

Definition at line 456 of file CodeGenOptions.h.

Referenced by initTargetOptions().

◆ AsSecureLogFile

std::string clang::CodeGenOptions::AsSecureLogFile

The name of a file to use with .secure_log_unique directives.

Definition at line 479 of file CodeGenOptions.h.

Referenced by initTargetOptions().

◆ BBSections

std::string clang::CodeGenOptions::BBSections

Definition at line 118 of file CodeGenOptions.h.

Referenced by initTargetOptions().

◆ BinutilsVersion

std::string clang::CodeGenOptions::BinutilsVersion

Definition at line 124 of file CodeGenOptions.h.

Referenced by initTargetOptions().

◆ CmdArgs

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

List of backend command-line options for -fembed-bitcode.

Definition at line 388 of file CodeGenOptions.h.

Referenced by clang::EmbedBitcode(), and runThinLTOBackend().

◆ CodeModel

std::string clang::CodeGenOptions::CodeModel

The code model to use (-mcmodel).

Definition at line 168 of file CodeGenOptions.h.

Referenced by FixupInvocation(), and getCodeModel().

◆ CommandLineArgs

std::vector<std::string> clang::CodeGenOptions::CommandLineArgs

Definition at line 457 of file CodeGenOptions.h.

Referenced by initTargetOptions().

◆ CoverageCompilationDir

std::string clang::CodeGenOptions::CoverageCompilationDir

The string to embed in coverage mapping as the current working directory.

Definition at line 198 of file CodeGenOptions.h.

Referenced by clang::tooling::dependencies::resetBenignCodeGenOptions().

◆ CoverageDataFile

std::string clang::CodeGenOptions::CoverageDataFile

The filename with path we use for coverage data files.

The runtime allows further manipulation with the GCOV_PREFIX and GCOV_PREFIX_STRIP environment variables.

Definition at line 177 of file CodeGenOptions.h.

Referenced by clang::CodeGen::CodeGenModule::CodeGenModule(), getGCOVOptions(), and clang::tooling::dependencies::resetBenignCodeGenOptions().

◆ CoverageNotesFile

std::string clang::CodeGenOptions::CoverageNotesFile

The filename with path we use for coverage notes files.

Definition at line 180 of file CodeGenOptions.h.

Referenced by clang::CodeGen::CodeGenModule::CodeGenModule(), getGCOVOptions(), and clang::tooling::dependencies::resetBenignCodeGenOptions().

◆ 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 212 of file CodeGenOptions.h.

◆ CoverageVersion

char clang::CodeGenOptions::CoverageVersion[4]

The version string to put into coverage files.

Definition at line 189 of file CodeGenOptions.h.

Referenced by CodeGenOptions(), getGCOVOptions(), and resetNonModularOptions().

◆ 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 308 of file CodeGenOptions.h.

Referenced by clang::IncrementalCUDADeviceParser::Parse().

◆ DebugCompilationDir

std::string clang::CodeGenOptions::DebugCompilationDir

The string to embed in debug information as the current working directory.

Definition at line 195 of file CodeGenOptions.h.

Referenced by clang::tooling::dependencies::resetBenignCodeGenOptions().

◆ DebugPass

std::string clang::CodeGenOptions::DebugPass

Enable additional debugging information.

Definition at line 192 of file CodeGenOptions.h.

Referenced by setCommandLineOpts().

◆ DebugPrefixMap

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

Definition at line 208 of file CodeGenOptions.h.

Referenced by clang::CodeGen::CGDebugInfo::remapDIPath().

◆ DefaultFunctionAttrs

std::vector<std::string> clang::CodeGenOptions::DefaultFunctionAttrs

Definition at line 406 of file CodeGenOptions.h.

Referenced by getTrivialDefaultFunctionAttributes().

◆ DependentLibraries

std::vector<std::string> clang::CodeGenOptions::DependentLibraries

A list of dependent libraries.

Definition at line 269 of file CodeGenOptions.h.

◆ 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 472 of file CodeGenOptions.h.

Referenced by clang::BackendConsumer::HandleTranslationUnit().

◆ 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 476 of file CodeGenOptions.h.

Referenced by clang::BackendConsumer::HandleTranslationUnit().

◆ DIBugsReportFilePath

std::string clang::CodeGenOptions::DIBugsReportFilePath

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

Definition at line 219 of file CodeGenOptions.h.

◆ DwarfDebugFlags

std::string clang::CodeGenOptions::DwarfDebugFlags

The string to embed in the debug information for the compile unit, if non-empty.

Definition at line 202 of file CodeGenOptions.h.

Referenced by clang::tooling::dependencies::resetBenignCodeGenOptions(), and SetUpDiagnosticLog().

◆ FloatABI

std::string clang::CodeGenOptions::FloatABI

The ABI to use for passing floating point arguments.

Definition at line 215 of file CodeGenOptions.h.

Referenced by createTargetCodeGenInfo(), and initTargetOptions().

◆ FP32DenormalMode

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

The floating-point denormal mode to use, for float.

Definition at line 225 of file CodeGenOptions.h.

Referenced by addMergableDefaultFunctionAttributes(), clang::CodeGen::mergeDefaultFunctionDefinitionAttributes(), and clang::CodeGen::CodeGenModule::Release().

◆ FPDenormalMode

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

The floating-point denormal mode to use.

Definition at line 222 of file CodeGenOptions.h.

Referenced by addMergableDefaultFunctionAttributes(), and clang::CodeGen::mergeDefaultFunctionDefinitionAttributes().

◆ InstrProfileOutput

std::string clang::CodeGenOptions::InstrProfileOutput

Name of the profile file to use as output for -fprofile-instr-generate, -fprofile-generate, and -fcs-profile-generate.

Definition at line 276 of file CodeGenOptions.h.

Referenced by getInstrProfOptions(), and runThinLTOBackend().

◆ LargeDataThreshold

uint64_t clang::CodeGenOptions::LargeDataThreshold

The code model-specific large data threshold to use (-mlarge-data-threshold).

Definition at line 172 of file CodeGenOptions.h.

Referenced by FixupInvocation().

◆ LimitFloatPrecision

std::string clang::CodeGenOptions::LimitFloatPrecision

The float precision limit to use, if non-empty.

Definition at line 228 of file CodeGenOptions.h.

Referenced by setCommandLineOpts().

◆ LinkBitcodeFiles

std::vector<BitcodeFileToLink> clang::CodeGenOptions::LinkBitcodeFiles

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

Definition at line 244 of file CodeGenOptions.h.

◆ LinkerOptions

std::vector<std::string> clang::CodeGenOptions::LinkerOptions

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

Definition at line 272 of file CodeGenOptions.h.

◆ MainFileName

std::string clang::CodeGenOptions::MainFileName

The user provided name for the "main file", if non-empty.

This is useful in situations where the input file name does not match the original input file, for example with -save-temps.

Definition at line 249 of file CodeGenOptions.h.

Referenced by initTargetOptions(), and clang::tooling::dependencies::resetBenignCodeGenOptions().

◆ MemoryProfileOutput

std::string clang::CodeGenOptions::MemoryProfileOutput

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

Definition at line 282 of file CodeGenOptions.h.

Referenced by clang::CodeGen::CodeGenModule::Release().

◆ MemoryProfileUsePath

std::string clang::CodeGenOptions::MemoryProfileUsePath

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

Definition at line 285 of file CodeGenOptions.h.

◆ NoBuiltinFuncs

std::vector<std::string> clang::CodeGenOptions::NoBuiltinFuncs

A list of all -fno-builtin-* function names (e.g., memset).

Definition at line 391 of file CodeGenOptions.h.

Referenced by getNoBuiltinFuncs().

◆ NoTocDataVars

std::vector<std::string> clang::CodeGenOptions::NoTocDataVars

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

Definition at line 418 of file CodeGenOptions.h.

◆ ObjectFilenameForDebug

std::string clang::CodeGenOptions::ObjectFilenameForDebug

Output filename used in the COFF debug information.

Definition at line 259 of file CodeGenOptions.h.

Referenced by initTargetOptions(), and runThinLTOBackend().

◆ OffloadObjects

std::vector<std::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 312 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 361 of file CodeGenOptions.h.

Referenced by clang::ClangDiagnosticHandler::isAnyRemarkEnabled(), clang::ClangDiagnosticHandler::isPassedOptRemarkEnabled(), and clang::BackendConsumer::OptimizationRemarkHandler().

◆ 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 374 of file CodeGenOptions.h.

Referenced by clang::ClangDiagnosticHandler::isAnalysisRemarkEnabled(), clang::ClangDiagnosticHandler::isAnyRemarkEnabled(), and clang::BackendConsumer::OptimizationRemarkHandler().

◆ 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 367 of file CodeGenOptions.h.

Referenced by clang::ClangDiagnosticHandler::isAnyRemarkEnabled(), clang::ClangDiagnosticHandler::isMissedOptRemarkEnabled(), and clang::BackendConsumer::OptimizationRemarkHandler().

◆ OptRecordFile

std::string clang::CodeGenOptions::OptRecordFile

The name of the file to which the backend should save YAML optimization records.

Definition at line 316 of file CodeGenOptions.h.

Referenced by clang::BackendConsumer::HandleTranslationUnit(), clang::reportOptRecordError(), and runThinLTOBackend().

◆ OptRecordFormat

std::string clang::CodeGenOptions::OptRecordFormat

The format used for serializing remarks (default: YAML)

Definition at line 323 of file CodeGenOptions.h.

Referenced by clang::BackendConsumer::HandleTranslationUnit(), clang::reportOptRecordError(), and runThinLTOBackend().

◆ OptRecordPasses

std::string clang::CodeGenOptions::OptRecordPasses

The regex that filters the passes that should be saved to the optimization records.

Definition at line 320 of file CodeGenOptions.h.

Referenced by clang::BackendConsumer::HandleTranslationUnit(), clang::reportOptRecordError(), and runThinLTOBackend().

◆ PassBuilderCallbacks

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

List of pass builder callbacks.

Definition at line 412 of file CodeGenOptions.h.

◆ PassPlugins

std::vector<std::string> clang::CodeGenOptions::PassPlugins

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

Definition at line 409 of file CodeGenOptions.h.

◆ PointerAuth

PointerAuthOptions clang::CodeGenOptions::PointerAuth

◆ PreferVectorWidth

std::string clang::CodeGenOptions::PreferVectorWidth

The preferred width for auto-vectorization transforms.

This is intended to override default transforms based on the width of the architected vector registers.

Definition at line 401 of file CodeGenOptions.h.

Referenced by getTrivialDefaultFunctionAttributes().

◆ ProfileExcludeFiles

std::string clang::CodeGenOptions::ProfileExcludeFiles

Regexes separated by a semi-colon to filter the files to not instrument.

Definition at line 186 of file CodeGenOptions.h.

Referenced by getGCOVOptions().

◆ ProfileFilterFiles

std::string clang::CodeGenOptions::ProfileFilterFiles

Regexes separated by a semi-colon to filter the files to instrument.

Definition at line 183 of file CodeGenOptions.h.

Referenced by getGCOVOptions().

◆ ProfileInstrumentUsePath

std::string clang::CodeGenOptions::ProfileInstrumentUsePath

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

Definition at line 288 of file CodeGenOptions.h.

Referenced by clang::CodeGen::CodeGenModule::CodeGenModule(), clang::tooling::dependencies::resetBenignCodeGenOptions(), and runThinLTOBackend().

◆ ProfileRemappingFile

std::string clang::CodeGenOptions::ProfileRemappingFile

Name of the profile remapping file to apply to the profile data supplied by -fprofile-sample-use or -fprofile-instr-use.

Definition at line 292 of file CodeGenOptions.h.

Referenced by clang::CodeGen::CodeGenModule::CodeGenModule(), clang::EmitBackendOutput(), and clang::tooling::dependencies::resetBenignCodeGenOptions().

◆ Reciprocals

std::vector<std::string> clang::CodeGenOptions::Reciprocals

Definition at line 393 of file CodeGenOptions.h.

Referenced by getTrivialDefaultFunctionAttributes().

◆ RecordCommandLine

std::string clang::CodeGenOptions::RecordCommandLine

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

Definition at line 206 of file CodeGenOptions.h.

◆ RelocationModel

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

The name of the relocation model to use.

Definition at line 262 of file CodeGenOptions.h.

Referenced by CodeGenOptions(), resetNonModularOptions(), runThinLTOBackend(), and shouldAssumeDSOLocal().

◆ SampleProfileFile

std::string clang::CodeGenOptions::SampleProfileFile

Name of the profile file to use with -fprofile-sample-use.

Definition at line 279 of file CodeGenOptions.h.

Referenced by clang::EmitBackendOutput(), and clang::tooling::dependencies::resetBenignCodeGenOptions().

◆ SanitizeCoverageAllowlistFiles

std::vector<std::string> clang::CodeGenOptions::SanitizeCoverageAllowlistFiles

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

Definition at line 423 of file CodeGenOptions.h.

Referenced by addSanitizers().

◆ SanitizeCoverageIgnorelistFiles

std::vector<std::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 442 of file CodeGenOptions.h.

Referenced by addSanitizers().

◆ SanitizeMergeHandlers

SanitizerSet clang::CodeGenOptions::SanitizeMergeHandlers

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

Definition at line 385 of file CodeGenOptions.h.

◆ SanitizeMetadataIgnorelistFiles

std::vector<std::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 447 of file CodeGenOptions.h.

Referenced by addSanitizers().

◆ SanitizeRecover

SanitizerSet clang::CodeGenOptions::SanitizeRecover

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

execution should be continued when possible).

Definition at line 378 of file CodeGenOptions.h.

Referenced by addSanitizers().

◆ SanitizeTrap

SanitizerSet clang::CodeGenOptions::SanitizeTrap

Set of sanitizer checks that trap rather than diagnose.

Definition at line 381 of file CodeGenOptions.h.

Referenced by clang::CodeGen::CodeGenModule::NeedAllVtablesTypeId().

◆ SaveTempsFilePrefix

std::string clang::CodeGenOptions::SaveTempsFilePrefix

Prefix to use for -save-temps output.

Definition at line 304 of file CodeGenOptions.h.

Referenced by runThinLTOBackend().

◆ SplitDwarfFile

std::string clang::CodeGenOptions::SplitDwarfFile

The name for the split debug info file used for the DW_AT_[GNU_]dwo_name attribute in the skeleton CU.

Definition at line 253 of file CodeGenOptions.h.

Referenced by initTargetOptions(), and runThinLTOBackend().

◆ SplitDwarfOutput

std::string clang::CodeGenOptions::SplitDwarfOutput

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

Definition at line 256 of file CodeGenOptions.h.

Referenced by runThinLTOBackend().

◆ 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 428 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 434 of file CodeGenOptions.h.

◆ StackProtectorGuardSymbol

std::string clang::CodeGenOptions::StackProtectorGuardSymbol

Specify a symbol to be the guard value.

Definition at line 437 of file CodeGenOptions.h.

◆ 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 452 of file CodeGenOptions.h.

Referenced by initTargetOptions().

◆ SymbolPartition

std::string clang::CodeGenOptions::SymbolPartition

The name of the partition that symbols are assigned to, specified with -fsymbol-partition (see https://lld.llvm.org/Partitions.html).

Definition at line 327 of file CodeGenOptions.h.

Referenced by clang::CodeGen::CodeGenModule::setGVPropertiesAux().

◆ 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 301 of file CodeGenOptions.h.

◆ ThinLTOIndexFile

std::string clang::CodeGenOptions::ThinLTOIndexFile

Name of the function summary index file to use for ThinLTO function importing.

Definition at line 296 of file CodeGenOptions.h.

Referenced by clang::EmitBackendOutput().

◆ TocDataVarsUserSpecified

std::vector<std::string> clang::CodeGenOptions::TocDataVarsUserSpecified

List of global variables explicitly specified by the user as toc-data.

Definition at line 415 of file CodeGenOptions.h.

Referenced by checkAliasForTocData().

◆ TrapFuncName

std::string clang::CodeGenOptions::TrapFuncName

If not an empty string, trap intrinsics are lowered to calls to this function instead of to trap instructions.

Definition at line 266 of file CodeGenOptions.h.

Referenced by getTrivialDefaultFunctionAttributes().

◆ XRayInstrumentationBundle

XRayInstrSet clang::CodeGenOptions::XRayInstrumentationBundle

Set of XRay instrumentation kinds to emit.

Definition at line 404 of file CodeGenOptions.h.


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