clang  14.0.0git
Classes | Public Types | 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]
Collaboration diagram for clang::CodeGenOptions:
Collaboration 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, 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  FramePointerKind { FramePointerKind::None, FramePointerKind::NonLeaf, FramePointerKind::All }
 
enum  SwiftAsyncFramePointerKind { SwiftAsyncFramePointerKind::Auto, Always, Never, SwiftAsyncFramePointerKind::Default = Always }
 
enum  FiniteLoopsKind {
  Language, Always, Always, Never,
  Never
}
 
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. More...
 
bool hasProfileIRInstr () const
 Check if IR level profile instrumentation is on. More...
 
bool hasProfileCSIRInstr () const
 Check if CS IR level profile instrumentation is on. More...
 
bool hasProfileClangUse () const
 Check if Clang profile use is on. More...
 
bool hasProfileIRUse () const
 Check if IR level profile use is on. More...
 
bool hasProfileCSIRUse () const
 Check if CSIR profile use is on. More...
 
bool hasReducedDebugInfo () const
 Check if type and variable info should be emitted. More...
 
bool hasMaybeUnusedDebugInfo () const
 Check if maybe unused type info should be emitted. More...
 
bool hasSanitizeCoverage () const
 

Public Attributes

std::string BBSections
 
std::string BinutilsVersion
 
std::string CodeModel
 The code model to use (-mcmodel). More...
 
std::string CoverageDataFile
 The filename with path we use for coverage data files. More...
 
std::string CoverageNotesFile
 The filename with path we use for coverage notes files. More...
 
std::string ProfileFilterFiles
 Regexes separated by a semi-colon to filter the files to instrument. More...
 
std::string ProfileExcludeFiles
 Regexes separated by a semi-colon to filter the files to not instrument. More...
 
char CoverageVersion [4]
 The version string to put into coverage files. More...
 
std::string DebugPass
 Enable additional debugging information. More...
 
std::string DebugCompilationDir
 The string to embed in debug information as the current working directory. More...
 
std::string CoverageCompilationDir
 The string to embed in coverage mapping as the current working directory. More...
 
std::string DwarfDebugFlags
 The string to embed in the debug information for the compile unit, if non-empty. More...
 
std::string RecordCommandLine
 The string containing the commandline for the llvm.commandline metadata, if non-empty. More...
 
std::map< std::string, std::stringDebugPrefixMap
 
std::map< std::string, std::stringCoveragePrefixMap
 
std::string FloatABI
 The ABI to use for passing floating point arguments. More...
 
std::string DIBugsReportFilePath
 The file to use for dumping bug report by Debugify for original debug info. More...
 
llvm::DenormalMode FPDenormalMode = llvm::DenormalMode::getIEEE()
 The floating-point denormal mode to use. More...
 
llvm::DenormalMode FP32DenormalMode = llvm::DenormalMode::getIEEE()
 The floating-point denormal mode to use, for float. More...
 
std::string LimitFloatPrecision
 The float precision limit to use, if non-empty. More...
 
std::vector< BitcodeFileToLinkLinkBitcodeFiles
 The files specified here are linked in to the module before optimizations. More...
 
std::string MainFileName
 The user provided name for the "main file", if non-empty. More...
 
std::string SplitDwarfFile
 The name for the split debug info file used for the DW_AT_[GNU_]dwo_name attribute in the skeleton CU. More...
 
std::string SplitDwarfOutput
 Output filename for the split debug info, not used in the skeleton CU. More...
 
llvm::Reloc::Model RelocationModel
 The name of the relocation model to use. More...
 
std::string TrapFuncName
 If not an empty string, trap intrinsics are lowered to calls to this function instead of to trap instructions. More...
 
std::vector< std::stringDependentLibraries
 A list of dependent libraries. More...
 
std::vector< std::stringLinkerOptions
 A list of linker options to embed in the object file. More...
 
std::string InstrProfileOutput
 Name of the profile file to use as output for -fprofile-instr-generate, -fprofile-generate, and -fcs-profile-generate. More...
 
std::string SampleProfileFile
 Name of the profile file to use with -fprofile-sample-use. More...
 
std::string MemoryProfileOutput
 Name of the profile file to use as output for with -fmemory-profile. More...
 
std::string ProfileInstrumentUsePath
 Name of the profile file to use as input for -fprofile-instr-use. More...
 
std::string ProfileRemappingFile
 Name of the profile remapping file to apply to the profile data supplied by -fprofile-sample-use or -fprofile-instr-use. More...
 
std::string ThinLTOIndexFile
 Name of the function summary index file to use for ThinLTO function importing. More...
 
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. More...
 
std::string SaveTempsFilePrefix
 Prefix to use for -save-temps output. More...
 
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. More...
 
std::string OptRecordFile
 The name of the file to which the backend should save YAML optimization records. More...
 
std::string OptRecordPasses
 The regex that filters the passes that should be saved to the optimization records. More...
 
std::string OptRecordFormat
 The format used for serializing remarks (default: YAML) More...
 
std::string SymbolPartition
 The name of the partition that symbols are assigned to, specified with -fsymbol-partition (see https://lld.llvm.org/Partitions.html). More...
 
OptRemark OptimizationRemark
 Selected optimizations for which we should enable optimization remarks. More...
 
OptRemark OptimizationRemarkMissed
 Selected optimizations for which we should enable missed optimization remarks. More...
 
OptRemark OptimizationRemarkAnalysis
 Selected optimizations for which we should enable optimization analyses. More...
 
std::vector< std::stringRewriteMapFiles
 Set of files defining the rules for the symbol rewriting. More...
 
SanitizerSet SanitizeRecover
 Set of sanitizer checks that are non-fatal (i.e. More...
 
SanitizerSet SanitizeTrap
 Set of sanitizer checks that trap rather than diagnose. More...
 
std::vector< uint8_t > CmdArgs
 List of backend command-line options for -fembed-bitcode. More...
 
std::vector< std::stringNoBuiltinFuncs
 A list of all -fno-builtin-* function names (e.g., memset). More...
 
std::vector< std::stringReciprocals
 
std::string PreferVectorWidth
 The preferred width for auto-vectorization transforms. More...
 
XRayInstrSet XRayInstrumentationBundle
 Set of XRay instrumentation kinds to emit. More...
 
std::vector< std::stringDefaultFunctionAttrs
 
std::vector< std::stringPassPlugins
 List of dynamic shared object files to be loaded as pass plugins. More...
 
std::vector< std::stringSanitizeCoverageAllowlistFiles
 Path to allowlist file specifying which objects (files, functions) should exclusively be instrumented by sanitizer coverage pass. More...
 
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. More...
 
std::string StackProtectorGuardReg
 The TLS base register when StackProtectorGuard is "tls", or register used to store the stack canary for "sysreg". More...
 
std::vector< std::stringSanitizeCoverageIgnorelistFiles
 Path to ignorelist file specifying which objects (files, functions) listed for instrumentation by sanitizer coverage pass should actually not be instrumented. More...
 
std::string StackUsageOutput
 Name of the stack usage file (i.e., .su file) if user passes -fstack-usage. More...
 
const char * Argv0 = nullptr
 Executable and command-line used to create a given CompilerInvocation. More...
 
ArrayRef< const char * > CommandLineArgs
 
Optional< uint64_t > DiagnosticsHotnessThreshold = 0
 The minimum hotness value a diagnostic needs in order to be included in optimization diagnostics. More...
 

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

◆ EmbedBitcodeKind

Enumerator
Embed_Off 
Embed_All 
Embed_Bitcode 
Embed_Marker 

Definition at line 93 of file CodeGenOptions.h.

◆ FiniteLoopsKind

Enumerator
Language 
Always 
Always 
Never 
Never 

Definition at line 135 of file CodeGenOptions.h.

◆ FramePointerKind

Enumerator
None 
NonLeaf 
All 

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

◆ ProfileInstrKind

Enumerator
ProfileNone 
ProfileClangInstr 
ProfileIRInstr 
ProfileCSIRInstr 

Definition at line 85 of file CodeGenOptions.h.

◆ RemarkKind

Enumerator
RK_Missing 
RK_Enabled 
RK_EnabledEverything 
RK_Disabled 
RK_DisabledEverything 
RK_WithPattern 

Definition at line 286 of file CodeGenOptions.h.

◆ StructReturnConventionKind

Enumerator
SRCK_Default 
SRCK_OnStack 
SRCK_InRegs 

Definition at line 79 of file CodeGenOptions.h.

◆ SwiftAsyncFramePointerKind

Enumerator
Auto 
Always 
Never 
Default 

Definition at line 128 of file CodeGenOptions.h.

◆ TLSModel

Enumerator
GeneralDynamicTLSModel 
LocalDynamicTLSModel 
InitialExecTLSModel 
LocalExecTLSModel 

Definition at line 72 of file CodeGenOptions.h.

◆ VectorLibrary

Enumerator
NoLibrary 
Accelerate 
LIBMVEC 
MASSV 
SVML 
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

◆ getNoBuiltinFuncs()

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

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

References clang::codegenoptions::UnusedTypeInfo.

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

References ProfileClangInstr.

◆ hasProfileCSIRInstr()

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

Check if CS IR level profile instrumentation is on.

Definition at line 435 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 451 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 430 of file CodeGenOptions.h.

References ProfileIRInstr.

◆ hasProfileIRUse()

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

Check if IR level profile use is on.

Definition at line 445 of file CodeGenOptions.h.

References ProfileCSIRInstr, and ProfileIRInstr.

◆ hasReducedDebugInfo()

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

◆ hasSanitizeCoverage()

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

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

◆ BBSections

std::string clang::CodeGenOptions::BBSections

Definition at line 114 of file CodeGenOptions.h.

◆ BinutilsVersion

std::string clang::CodeGenOptions::BinutilsVersion

Definition at line 120 of file CodeGenOptions.h.

◆ CmdArgs

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

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

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

Referenced by FixupInvocation(), and getCodeModel().

◆ CommandLineArgs

ArrayRef<const char *> clang::CodeGenOptions::CommandLineArgs

Definition at line 393 of file CodeGenOptions.h.

◆ CoverageCompilationDir

std::string clang::CodeGenOptions::CoverageCompilationDir

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

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

◆ CoverageNotesFile

std::string clang::CodeGenOptions::CoverageNotesFile

The filename with path we use for coverage notes files.

Definition at line 150 of file CodeGenOptions.h.

◆ CoveragePrefixMap

std::map<std::string, std::string> clang::CodeGenOptions::CoveragePrefixMap

◆ CoverageVersion

char clang::CodeGenOptions::CoverageVersion[4]

The version string to put into coverage files.

Definition at line 159 of file CodeGenOptions.h.

Referenced by CodeGenOptions().

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

◆ DebugCompilationDir

std::string clang::CodeGenOptions::DebugCompilationDir

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

Definition at line 165 of file CodeGenOptions.h.

◆ DebugPass

std::string clang::CodeGenOptions::DebugPass

Enable additional debugging information.

Definition at line 162 of file CodeGenOptions.h.

Referenced by setCommandLineOpts().

◆ DebugPrefixMap

std::map<std::string, std::string> clang::CodeGenOptions::DebugPrefixMap

Definition at line 178 of file CodeGenOptions.h.

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

◆ DefaultFunctionAttrs

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

Definition at line 359 of file CodeGenOptions.h.

◆ DependentLibraries

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

A list of dependent libraries.

Definition at line 233 of file CodeGenOptions.h.

◆ DiagnosticsHotnessThreshold

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 408 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 186 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 172 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 182 of file CodeGenOptions.h.

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

◆ FP32DenormalMode

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

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

Definition at line 192 of file CodeGenOptions.h.

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

◆ FPDenormalMode

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

The floating-point denormal mode to use.

Definition at line 189 of file CodeGenOptions.h.

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

Referenced by runThinLTOBackend().

◆ LimitFloatPrecision

std::string clang::CodeGenOptions::LimitFloatPrecision

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

Definition at line 195 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 211 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 236 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 216 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 246 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 347 of file CodeGenOptions.h.

Referenced by getNoBuiltinFuncs().

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

Referenced by 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 331 of file CodeGenOptions.h.

Referenced by 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 324 of file CodeGenOptions.h.

Referenced by 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 273 of file CodeGenOptions.h.

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

◆ OptRecordFormat

std::string clang::CodeGenOptions::OptRecordFormat

The format used for serializing remarks (default: YAML)

Definition at line 280 of file CodeGenOptions.h.

Referenced by 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 277 of file CodeGenOptions.h.

Referenced by 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 362 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 354 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 156 of file CodeGenOptions.h.

◆ ProfileFilterFiles

std::string clang::CodeGenOptions::ProfileFilterFiles

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

Definition at line 153 of file CodeGenOptions.h.

◆ ProfileInstrumentUsePath

std::string clang::CodeGenOptions::ProfileInstrumentUsePath

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

Definition at line 249 of file CodeGenOptions.h.

Referenced by 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 253 of file CodeGenOptions.h.

Referenced by FixupInvocation().

◆ Reciprocals

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

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

◆ RelocationModel

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

The name of the relocation model to use.

Definition at line 226 of file CodeGenOptions.h.

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

◆ RewriteMapFiles

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

Set of files defining the rules for the symbol rewriting.

Definition at line 334 of file CodeGenOptions.h.

Referenced by addSymbolRewriterPass().

◆ SampleProfileFile

std::string clang::CodeGenOptions::SampleProfileFile

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

Definition at line 243 of file CodeGenOptions.h.

Referenced by clang::CodeGen::CodeGenFunction::StartFunction().

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

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

◆ SanitizeRecover

SanitizerSet clang::CodeGenOptions::SanitizeRecover

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

execution should be continued when possible).

Definition at line 338 of file CodeGenOptions.h.

Referenced by addSanitizers(), and clang::CodeGen::CodeGenFunction::EmitCheck().

◆ SanitizeTrap

SanitizerSet clang::CodeGenOptions::SanitizeTrap

◆ SaveTempsFilePrefix

std::string clang::CodeGenOptions::SaveTempsFilePrefix

Prefix to use for -save-temps output.

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

Referenced by runThinLTOBackend().

◆ SplitDwarfOutput

std::string clang::CodeGenOptions::SplitDwarfOutput

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

Definition at line 223 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 372 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 378 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 388 of file CodeGenOptions.h.

◆ 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 284 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 262 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 257 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 230 of file CodeGenOptions.h.

Referenced by clang::CodeGen::CodeGenFunction::EmitTrapCall(), and clang::CodeGen::CodeGenFunction::EmitTrapCheck().

◆ XRayInstrumentationBundle

XRayInstrSet clang::CodeGenOptions::XRayInstrumentationBundle

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