clang 17.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  VectorLibrary {
  NoLibrary , Accelerate , LIBMVEC , MASSV ,
  SVML , SLEEF , Darwin_libsystem_m
}
 
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 , 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 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
 

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).
 
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 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.
 
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
 
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::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 49 of file CodeGenOptions.h.

Member Enumeration Documentation

◆ AssignmentTrackingOpts

Enumerator
Disabled 
Enabled 
Forced 

Definition at line 166 of file CodeGenOptions.h.

◆ DebugSrcHashKind

Enumerator
DSH_MD5 
DSH_SHA1 
DSH_SHA256 

Definition at line 106 of file CodeGenOptions.h.

◆ EmbedBitcodeKind

Enumerator
Embed_Off 
Embed_All 
Embed_Bitcode 
Embed_Marker 

Definition at line 94 of file CodeGenOptions.h.

◆ FiniteLoopsKind

Enumerator
Language 
Always 
Never 

Definition at line 160 of file CodeGenOptions.h.

◆ FramePointerKind

Enumerator
None 
NonLeaf 
All 

Definition at line 134 of file CodeGenOptions.h.

◆ InlineAsmDialectKind

Enumerator
IAD_ATT 
IAD_Intel 

Definition at line 101 of file CodeGenOptions.h.

◆ InliningMethod

Enumerator
NormalInlining 
OnlyHintInlining 
OnlyAlwaysInlining 

Definition at line 51 of file CodeGenOptions.h.

◆ ObjCDispatchMethodKind

Enumerator
Legacy 
NonLegacy 
Mixed 

Definition at line 67 of file CodeGenOptions.h.

◆ ProfileInstrKind

Enumerator
ProfileNone 
ProfileClangInstr 
ProfileIRInstr 
ProfileCSIRInstr 

Definition at line 86 of file CodeGenOptions.h.

◆ RemarkKind

Enumerator
RK_Missing 
RK_Enabled 
RK_EnabledEverything 
RK_Disabled 
RK_DisabledEverything 
RK_WithPattern 

Definition at line 327 of file CodeGenOptions.h.

◆ StructReturnConventionKind

Enumerator
SRCK_Default 
SRCK_OnStack 
SRCK_InRegs 

Definition at line 80 of file CodeGenOptions.h.

◆ SwiftAsyncFramePointerKind

Enumerator
Auto 
Always 
Never 
Default 

Definition at line 153 of file CodeGenOptions.h.

◆ TLSModel

Enumerator
GeneralDynamicTLSModel 
LocalDynamicTLSModel 
InitialExecTLSModel 
LocalExecTLSModel 

Definition at line 73 of file CodeGenOptions.h.

◆ VectorLibrary

Enumerator
NoLibrary 
Accelerate 
LIBMVEC 
MASSV 
SVML 
SLEEF 
Darwin_libsystem_m 

Definition at line 57 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 140 of file CodeGenOptions.h.

References All, None, and NonLeaf.

◆ getNoBuiltinFuncs()

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

Definition at line 473 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 512 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 493 of file CodeGenOptions.h.

References ProfileClangInstr.

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

◆ hasProfileCSIRInstr()

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

Check if CS IR level profile instrumentation is on.

Definition at line 488 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 504 of file CodeGenOptions.h.

References ProfileCSIRInstr.

Referenced by runThinLTOBackend().

◆ hasProfileIRInstr()

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

Check if IR level profile instrumentation is on.

Definition at line 483 of file CodeGenOptions.h.

References ProfileIRInstr.

◆ hasProfileIRUse()

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

Check if IR level profile use is on.

Definition at line 498 of file CodeGenOptions.h.

References ProfileCSIRInstr, and ProfileIRInstr.

◆ hasReducedDebugInfo()

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

◆ hasSanitizeBinaryMetadata()

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

Definition at line 524 of file CodeGenOptions.h.

Referenced by addSanitizers().

◆ hasSanitizeCoverage()

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

Definition at line 517 of file CodeGenOptions.h.

Referenced by addSanitizers(), and FixupInvocation().

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 438 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 461 of file CodeGenOptions.h.

Referenced by initTargetOptions().

◆ BBSections

std::string clang::CodeGenOptions::BBSections

Definition at line 126 of file CodeGenOptions.h.

Referenced by initTargetOptions().

◆ BinutilsVersion

std::string clang::CodeGenOptions::BinutilsVersion

Definition at line 132 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 382 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 173 of file CodeGenOptions.h.

Referenced by FixupInvocation(), and getCodeModel().

◆ CommandLineArgs

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

Definition at line 439 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 199 of file CodeGenOptions.h.

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

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

◆ CoverageNotesFile

std::string clang::CodeGenOptions::CoverageNotesFile

The filename with path we use for coverage notes files.

Definition at line 181 of file CodeGenOptions.h.

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

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

◆ CoverageVersion

char clang::CodeGenOptions::CoverageVersion[4]

The version string to put into coverage files.

Definition at line 190 of file CodeGenOptions.h.

Referenced by CodeGenOptions(), and getGCOVOptions().

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

◆ DebugPass

std::string clang::CodeGenOptions::DebugPass

Enable additional debugging information.

Definition at line 193 of file CodeGenOptions.h.

Referenced by setCommandLineOpts().

◆ DebugPrefixMap

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

Definition at line 209 of file CodeGenOptions.h.

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

◆ DefaultFunctionAttrs

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

Definition at line 397 of file CodeGenOptions.h.

◆ DependentLibraries

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

A list of dependent libraries.

Definition at line 270 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 454 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 458 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 220 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 203 of file CodeGenOptions.h.

Referenced by SetUpDiagnosticLog().

◆ FloatABI

std::string clang::CodeGenOptions::FloatABI

The ABI to use for passing floating point arguments.

Definition at line 216 of file CodeGenOptions.h.

Referenced by clang::CodeGen::CodeGenModule::getTargetCodeGenInfo(), and initTargetOptions().

◆ FP32DenormalMode

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

◆ FPDenormalMode

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

The floating-point denormal mode to use.

Definition at line 223 of file CodeGenOptions.h.

Referenced by addMergableDefaultFunctionAttributes(), and clang::CodeGen::CodeGenModule::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 277 of file CodeGenOptions.h.

Referenced by getInstrProfOptions(), and runThinLTOBackend().

◆ LimitFloatPrecision

std::string clang::CodeGenOptions::LimitFloatPrecision

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

Definition at line 229 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 245 of file CodeGenOptions.h.

Referenced by clang::CodeGenAction::CreateASTConsumer().

◆ LinkerOptions

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

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

Definition at line 273 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 250 of file CodeGenOptions.h.

◆ MemoryProfileOutput

std::string clang::CodeGenOptions::MemoryProfileOutput

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

Definition at line 283 of file CodeGenOptions.h.

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

◆ NoBuiltinFuncs

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

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

Definition at line 385 of file CodeGenOptions.h.

Referenced by getNoBuiltinFuncs().

◆ ObjectFilenameForDebug

std::string clang::CodeGenOptions::ObjectFilenameForDebug

Output filename used in the COFF debug information.

Definition at line 260 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 310 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 359 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 372 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 365 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 314 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 321 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 318 of file CodeGenOptions.h.

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

◆ PassPlugins

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

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

Definition at line 400 of file CodeGenOptions.h.

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

◆ ProfileExcludeFiles

std::string clang::CodeGenOptions::ProfileExcludeFiles

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

Definition at line 187 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 184 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 286 of file CodeGenOptions.h.

Referenced by clang::CodeGen::CodeGenModule::CodeGenModule(), 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 290 of file CodeGenOptions.h.

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

◆ Reciprocals

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

Definition at line 387 of file CodeGenOptions.h.

◆ RecordCommandLine

std::string clang::CodeGenOptions::RecordCommandLine

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

Definition at line 207 of file CodeGenOptions.h.

◆ RelocationModel

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

The name of the relocation model to use.

Definition at line 263 of file CodeGenOptions.h.

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

◆ SampleProfileFile

std::string clang::CodeGenOptions::SampleProfileFile

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

Definition at line 280 of file CodeGenOptions.h.

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

Referenced by addSanitizers().

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

Referenced by addSanitizers().

◆ SanitizeTrap

SanitizerSet clang::CodeGenOptions::SanitizeTrap

Set of sanitizer checks that trap rather than diagnose.

Definition at line 379 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 302 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 254 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 257 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 410 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 416 of file CodeGenOptions.h.

◆ StackProtectorGuardSymbol

std::string clang::CodeGenOptions::StackProtectorGuardSymbol

Specify a symbol to be the guard value.

Definition at line 419 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 434 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 325 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 299 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 294 of file CodeGenOptions.h.

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

◆ XRayInstrumentationBundle

XRayInstrSet clang::CodeGenOptions::XRayInstrumentationBundle

Set of XRay instrumentation kinds to emit.

Definition at line 395 of file CodeGenOptions.h.


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