LLVM 24.0.0git
llvm::TargetOptions Class Reference

#include "llvm/Target/TargetOptions.h"

Public Member Functions

 TargetOptions ()
LLVM_ABI bool ShouldEmitDebugEntryValues () const
 NOTE: There are targets that still do not support the debug entry values production.

Public Attributes

unsigned NoZerosInBSS: 1
 NoZerosInBSS - By default some codegens place zero-initialized data to .bss section.
unsigned GuaranteedTailCallOpt: 1
 GuaranteedTailCallOpt - This flag is enabled when -tailcallopt is specified on the commandline.
unsigned StackSymbolOrdering: 1
 StackSymbolOrdering - When true, this will allow CodeGen to order the local stack symbols (for code size, code locality, or any other heuristics).
unsigned EnableFastISel: 1
 EnableFastISel - This flag enables fast-path instruction selection which trades away generated code quality in favor of reducing compile time.
unsigned EnableGlobalISel: 1
 EnableGlobalISel - This flag enables global instruction selection.
GlobalISelAbortMode GlobalISelAbort = GlobalISelAbortMode::Enable
 EnableGlobalISelAbort - Control abort behaviour when global instruction selection fails to lower/select an instruction.
SwiftAsyncFramePointerMode SwiftAsyncFramePointer
 Control when and how the Swift async frame pointer bit should be set.
unsigned UseInitArray: 1
 UseInitArray - Use .init_array instead of .ctors for static constructors.
unsigned FunctionSections: 1
 Emit functions into separate sections.
unsigned DataSections: 1
 Emit data into separate sections.
unsigned IgnoreXCOFFVisibility: 1
 Do not emit visibility attribute for xcoff.
unsigned XCOFFTracebackTable: 1
 Emit XCOFF traceback table.
unsigned UniqueSectionNames: 1
unsigned UniqueBasicBlockSectionNames: 1
 Use unique names for basic block sections.
unsigned SeparateNamedSections: 1
 Emit named sections with the same name into different sections.
unsigned TrapUnreachable: 1
 Emit target-specific trap instruction for 'unreachable' IR instructions.
unsigned NoTrapAfterNoreturn: 1
 Do not emit a trap instruction for 'unreachable' IR instructions behind noreturn calls, even if TrapUnreachable is true.
unsigned TLSSize: 8
 Bit size of immediate TLS offsets (0 == use the default).
unsigned EmulatedTLS: 1
 EmulatedTLS - This flag enables emulated TLS model, using emutls function in the runtime library.
unsigned EnableTLSDESC: 1
 EnableTLSDESC - This flag enables TLS Descriptors.
unsigned EnableIPRA: 1
 This flag enables InterProcedural Register Allocation (IPRA).
unsigned EmitStackSizeSection: 1
 Emit section containing metadata on function stack sizes.
unsigned EnableMachineOutliner: 1
 Enables the MachineOutliner pass.
unsigned EnableMachineFunctionSplitter: 1
 Enables the MachineFunctionSplitter pass.
unsigned EnableStaticDataPartitioning: 1
 Enables the StaticDataSplitter pass.
unsigned SupportsDefaultOutlining: 1
 Set if the target supports default outlining behaviour.
unsigned EnableDefaultMachineVerifier: 1
 Enable Machine verifier at the end of default codegen pipelines.
unsigned EmitAddrsig: 1
 Emit address-significance table.
unsigned BBAddrMap: 1
BasicBlockSection BBSections = BasicBlockSection::None
 Emit basic blocks into separate sections.
std::shared_ptr< MemoryBufferBBSectionsFuncListBuf
 Memory Buffer that contains information on sampled basic blocks and used to selectively generate basic block sections.
unsigned EmitCallGraphSection: 1
 Emit section containing call graph metadata.
unsigned EmitCallSiteInfo: 1
 The flag enables call site info production.
unsigned SupportsDebugEntryValues: 1
 Set if the target supports the debug entry values by default.
unsigned EnableDebugEntryValues: 1
 When set to true, the EnableDebugEntryValues option forces production of debug entry values even if the target does not officially support it.
unsigned ValueTrackingVariableLocations: 1
unsigned ForceDwarfFrameSection: 1
 Emit DWARF debug frame section.
unsigned XRayFunctionIndex: 1
 Emit XRay Function Index section.
unsigned DebugStrictDwarf: 1
 When set to true, don't use DWARF extensions in later DWARF versions.
unsigned Hotpatch: 1
 Emit the hotpatch flag in CodeView debug.
unsigned JMCInstrument: 1
 Enable JustMyCode instrumentation.
unsigned EnableCFIFixup: 1
 Enable the CFIFixup pass.
unsigned MisExpect: 1
 When set to true, enable MisExpect Diagnostics By default, it is set to false.
unsigned XCOFFReadOnlyPointers: 1
 When set to true, const objects with relocatable address values are put into the RO data section.
unsigned VerifyArgABICompliance: 1
 When set to true, call/return argument extensions of narrow integers are verified in the target backend if it cares about them.
std::string StackUsageFile
 Name of the stack usage file (i.e., .su file) if user passes -fstack-usage.
unsigned LoopAlignment = 0
 If greater than 0, override TargetLoweringBase::PrefLoopAlignment.
DebuggerKind DebuggerTuning = DebuggerKind::Default
 Which debugger to tune for.
VectorLibrary VecLib = VectorLibrary::NoLibrary
 Vector math library to use.
ExceptionHandling ExceptionModel = ExceptionHandling::Default
 What exception model to use.
MCTargetOptions MCOptions
 Machine level options.
std::string ObjectFilenameForDebug
 Stores the filename/path of the final .o/.obj file, to be written in the debug information.

Detailed Description

Definition at line 104 of file TargetOptions.h.

Constructor & Destructor Documentation

◆ TargetOptions()

Member Function Documentation

◆ ShouldEmitDebugEntryValues()

bool TargetOptions::ShouldEmitDebugEntryValues ( ) const

NOTE: There are targets that still do not support the debug entry values production.

NOTE: There are targets that still do not support the debug entry values production and that is being controlled with the SupportsDebugEntryValues.

In addition, SCE debugger does not have the feature implemented, so prefer not to emit the debug entry values in that case. The EnableDebugEntryValues can be used for the testing purposes.

Definition at line 25 of file TargetOptionsImpl.cpp.

References DebuggerTuning, EnableDebugEntryValues, llvm::SCE, and SupportsDebugEntryValues.

Member Data Documentation

◆ BBAddrMap

unsigned llvm::TargetOptions::BBAddrMap

Definition at line 230 of file TargetOptions.h.

Referenced by TargetOptions().

◆ BBSections

BasicBlockSection llvm::TargetOptions::BBSections = BasicBlockSection::None

Emit basic blocks into separate sections.

Definition at line 233 of file TargetOptions.h.

◆ BBSectionsFuncListBuf

std::shared_ptr<MemoryBuffer> llvm::TargetOptions::BBSectionsFuncListBuf

Memory Buffer that contains information on sampled basic blocks and used to selectively generate basic block sections.

Definition at line 237 of file TargetOptions.h.

◆ DataSections

unsigned llvm::TargetOptions::DataSections

Emit data into separate sections.

Definition at line 170 of file TargetOptions.h.

Referenced by llvm::computeLTOCacheKey(), TargetOptions(), and llvm::WebAssemblyTargetMachine::WebAssemblyTargetMachine().

◆ DebuggerTuning

DebuggerKind llvm::TargetOptions::DebuggerTuning = DebuggerKind::Default

Which debugger to tune for.

Definition at line 304 of file TargetOptions.h.

Referenced by llvm::computeLTOCacheKey(), and ShouldEmitDebugEntryValues().

◆ DebugStrictDwarf

unsigned llvm::TargetOptions::DebugStrictDwarf

When set to true, don't use DWARF extensions in later DWARF versions.

By default, it is set to false.

Definition at line 270 of file TargetOptions.h.

Referenced by TargetOptions().

◆ EmitAddrsig

unsigned llvm::TargetOptions::EmitAddrsig

Emit address-significance table.

Definition at line 226 of file TargetOptions.h.

Referenced by TargetOptions().

◆ EmitCallGraphSection

unsigned llvm::TargetOptions::EmitCallGraphSection

Emit section containing call graph metadata.

Definition at line 240 of file TargetOptions.h.

Referenced by llvm::MIRParserImpl::initializeCallSiteInfo(), llvm::TargetLowering::setTypeIdForCallsiteInfo(), and TargetOptions().

◆ EmitCallSiteInfo

unsigned llvm::TargetOptions::EmitCallSiteInfo

The flag enables call site info production.

It is used only for debug info, and it is restricted only to optimized code. This can be used for something else, so that should be controlled in the frontend.

Definition at line 245 of file TargetOptions.h.

Referenced by llvm::MIRParserImpl::initializeCallSiteInfo(), llvm::TargetLowering::setTypeIdForCallsiteInfo(), and TargetOptions().

◆ EmitStackSizeSection

unsigned llvm::TargetOptions::EmitStackSizeSection

Emit section containing metadata on function stack sizes.

Definition at line 207 of file TargetOptions.h.

Referenced by TargetOptions().

◆ EmulatedTLS

unsigned llvm::TargetOptions::EmulatedTLS

EmulatedTLS - This flag enables emulated TLS model, using emutls function in the runtime library.

Definition at line 198 of file TargetOptions.h.

Referenced by llvm::orc::irManglingOptionsFromTargetOptions(), and TargetOptions().

◆ EnableCFIFixup

unsigned llvm::TargetOptions::EnableCFIFixup

Enable the CFIFixup pass.

Definition at line 279 of file TargetOptions.h.

Referenced by TargetOptions().

◆ EnableDebugEntryValues

unsigned llvm::TargetOptions::EnableDebugEntryValues

When set to true, the EnableDebugEntryValues option forces production of debug entry values even if the target does not officially support it.

Useful for testing purposes only. This flag should never be checked directly, always use ShouldEmitDebugEntryValues instead.

Definition at line 252 of file TargetOptions.h.

Referenced by ShouldEmitDebugEntryValues(), and TargetOptions().

◆ EnableDefaultMachineVerifier

unsigned llvm::TargetOptions::EnableDefaultMachineVerifier

Enable Machine verifier at the end of default codegen pipelines.

(Only used with NPM)

Definition at line 223 of file TargetOptions.h.

Referenced by TargetOptions().

◆ EnableFastISel

unsigned llvm::TargetOptions::EnableFastISel

EnableFastISel - This flag enables fast-path instruction selection which trades away generated code quality in favor of reducing compile time.

Definition at line 148 of file TargetOptions.h.

Referenced by llvm::MipsTargetLowering::createFastISel(), LLVMCreateMCJITCompilerForModule(), promoteToConstantPool(), and TargetOptions().

◆ EnableGlobalISel

unsigned llvm::TargetOptions::EnableGlobalISel

EnableGlobalISel - This flag enables global instruction selection.

Definition at line 151 of file TargetOptions.h.

Referenced by TargetOptions().

◆ EnableIPRA

unsigned llvm::TargetOptions::EnableIPRA

This flag enables InterProcedural Register Allocation (IPRA).

Definition at line 204 of file TargetOptions.h.

Referenced by llvm::TargetFrameLowering::getMustPreserveRegisters(), and TargetOptions().

◆ EnableMachineFunctionSplitter

unsigned llvm::TargetOptions::EnableMachineFunctionSplitter

Enables the MachineFunctionSplitter pass.

Definition at line 213 of file TargetOptions.h.

Referenced by TargetOptions().

◆ EnableMachineOutliner

unsigned llvm::TargetOptions::EnableMachineOutliner

Enables the MachineOutliner pass.

Definition at line 210 of file TargetOptions.h.

Referenced by TargetOptions().

◆ EnableStaticDataPartitioning

unsigned llvm::TargetOptions::EnableStaticDataPartitioning

Enables the StaticDataSplitter pass.

Definition at line 216 of file TargetOptions.h.

Referenced by TargetOptions().

◆ EnableTLSDESC

unsigned llvm::TargetOptions::EnableTLSDESC

EnableTLSDESC - This flag enables TLS Descriptors.

Definition at line 201 of file TargetOptions.h.

Referenced by TargetOptions().

◆ ExceptionModel

ExceptionHandling llvm::TargetOptions::ExceptionModel = ExceptionHandling::Default

What exception model to use.

Definition at line 311 of file TargetOptions.h.

Referenced by basicCheckForEHAndSjLj(), and runIndirectBranchTracking().

◆ ForceDwarfFrameSection

unsigned llvm::TargetOptions::ForceDwarfFrameSection

Emit DWARF debug frame section.

Definition at line 263 of file TargetOptions.h.

Referenced by llvm::MachineFunction::needsFrameMoves(), and TargetOptions().

◆ FunctionSections

unsigned llvm::TargetOptions::FunctionSections

Emit functions into separate sections.

Definition at line 167 of file TargetOptions.h.

Referenced by llvm::computeLTOCacheKey(), TargetOptions(), and llvm::WebAssemblyTargetMachine::WebAssemblyTargetMachine().

◆ GlobalISelAbort

GlobalISelAbortMode llvm::TargetOptions::GlobalISelAbort = GlobalISelAbortMode::Enable

EnableGlobalISelAbort - Control abort behaviour when global instruction selection fails to lower/select an instruction.

Definition at line 155 of file TargetOptions.h.

Referenced by reportGISelDiagnostic(), and llvm::reportGISelFailure().

◆ GuaranteedTailCallOpt

unsigned llvm::TargetOptions::GuaranteedTailCallOpt

GuaranteedTailCallOpt - This flag is enabled when -tailcallopt is specified on the commandline.

When the flag is on, participating targets will perform tail call optimization on all calls which use the fastcc calling convention and which satisfy certain target-independent criteria (being at the end of a function, having the same return type as their parent function, etc.), using an alternate ABI if necessary.

Definition at line 137 of file TargetOptions.h.

Referenced by llvm::PPCFrameLowering::determineCalleeSaves(), llvm::PPCFrameLowering::eliminateCallFramePseudoInstr(), llvm::PPCFrameLowering::emitEpilogue(), llvm::AArch64CallLowering::isEligibleForTailCallOptimization(), llvm::AMDGPUCallLowering::isEligibleForTailCallOptimization(), llvm::SITargetLowering::isEligibleForTailCallOptimization(), llvm::isInTailCallPosition(), llvm::SITargetLowering::LowerCall(), llvm::AArch64CallLowering::lowerCall(), llvm::AMDGPUCallLowering::lowerCall(), llvm::AArch64CallLowering::lowerFormalArguments(), llvm::AMDGPUCallLowering::lowerTailCall(), llvm::PPCFrameLowering::processFunctionBeforeFrameFinalized(), and TargetOptions().

◆ Hotpatch

unsigned llvm::TargetOptions::Hotpatch

Emit the hotpatch flag in CodeView debug.

Definition at line 273 of file TargetOptions.h.

Referenced by TargetOptions().

◆ IgnoreXCOFFVisibility

unsigned llvm::TargetOptions::IgnoreXCOFFVisibility

Do not emit visibility attribute for xcoff.

Definition at line 173 of file TargetOptions.h.

Referenced by TargetOptions().

◆ JMCInstrument

unsigned llvm::TargetOptions::JMCInstrument

Enable JustMyCode instrumentation.

Definition at line 276 of file TargetOptions.h.

Referenced by TargetOptions().

◆ LoopAlignment

unsigned llvm::TargetOptions::LoopAlignment = 0

If greater than 0, override TargetLoweringBase::PrefLoopAlignment.

Definition at line 301 of file TargetOptions.h.

◆ MCOptions

◆ MisExpect

unsigned llvm::TargetOptions::MisExpect

When set to true, enable MisExpect Diagnostics By default, it is set to false.

Definition at line 283 of file TargetOptions.h.

Referenced by TargetOptions().

◆ NoTrapAfterNoreturn

unsigned llvm::TargetOptions::NoTrapAfterNoreturn

◆ NoZerosInBSS

unsigned llvm::TargetOptions::NoZerosInBSS

NoZerosInBSS - By default some codegens place zero-initialized data to .bss section.

This flag disables such behaviour (necessary, e.g. for crt*.o compiling).

Definition at line 129 of file TargetOptions.h.

Referenced by TargetOptions().

◆ ObjectFilenameForDebug

std::string llvm::TargetOptions::ObjectFilenameForDebug

Stores the filename/path of the final .o/.obj file, to be written in the debug information.

This is used for emitting the CodeView S_OBJNAME record.

Definition at line 319 of file TargetOptions.h.

Referenced by codegen().

◆ SeparateNamedSections

unsigned llvm::TargetOptions::SeparateNamedSections

Emit named sections with the same name into different sections.

Definition at line 184 of file TargetOptions.h.

Referenced by TargetOptions().

◆ StackSymbolOrdering

unsigned llvm::TargetOptions::StackSymbolOrdering

StackSymbolOrdering - When true, this will allow CodeGen to order the local stack symbols (for code size, code locality, or any other heuristics).

When false, the local symbols are left in whatever order they were generated. Default is true.

Definition at line 143 of file TargetOptions.h.

Referenced by TargetOptions().

◆ StackUsageFile

std::string llvm::TargetOptions::StackUsageFile

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 298 of file TargetOptions.h.

◆ SupportsDebugEntryValues

unsigned llvm::TargetOptions::SupportsDebugEntryValues

Set if the target supports the debug entry values by default.

Definition at line 247 of file TargetOptions.h.

Referenced by ShouldEmitDebugEntryValues(), and TargetOptions().

◆ SupportsDefaultOutlining

unsigned llvm::TargetOptions::SupportsDefaultOutlining

Set if the target supports default outlining behaviour.

Definition at line 219 of file TargetOptions.h.

Referenced by TargetOptions().

◆ SwiftAsyncFramePointer

SwiftAsyncFramePointerMode llvm::TargetOptions::SwiftAsyncFramePointer
Initial value:

Control when and how the Swift async frame pointer bit should be set.

Definition at line 159 of file TargetOptions.h.

Referenced by llvm::X86FrameLowering::emitPrologue().

◆ TLSSize

unsigned llvm::TargetOptions::TLSSize

Bit size of immediate TLS offsets (0 == use the default).

Definition at line 194 of file TargetOptions.h.

Referenced by llvm::AArch64TargetMachine::AArch64TargetMachine(), and TargetOptions().

◆ TrapUnreachable

◆ UniqueBasicBlockSectionNames

unsigned llvm::TargetOptions::UniqueBasicBlockSectionNames

Use unique names for basic block sections.

Definition at line 181 of file TargetOptions.h.

Referenced by TargetOptions().

◆ UniqueSectionNames

unsigned llvm::TargetOptions::UniqueSectionNames

◆ UseInitArray

unsigned llvm::TargetOptions::UseInitArray

UseInitArray - Use .init_array instead of .ctors for static constructors.

Definition at line 164 of file TargetOptions.h.

Referenced by llvm::TargetLoweringObjectFileELF::Initialize(), and TargetOptions().

◆ ValueTrackingVariableLocations

unsigned llvm::TargetOptions::ValueTrackingVariableLocations

Definition at line 260 of file TargetOptions.h.

Referenced by TargetOptions().

◆ VecLib

VectorLibrary llvm::TargetOptions::VecLib = VectorLibrary::NoLibrary

Vector math library to use.

Definition at line 307 of file TargetOptions.h.

Referenced by codegen(), optimizeModule(), runCodeGenPipelineLegacy(), and runNewPMPasses().

◆ VerifyArgABICompliance

unsigned llvm::TargetOptions::VerifyArgABICompliance

When set to true, call/return argument extensions of narrow integers are verified in the target backend if it cares about them.

This is not done with internal tools like llc that run many tests that ignore (lack) these extensions.

Definition at line 293 of file TargetOptions.h.

Referenced by TargetOptions().

◆ XCOFFReadOnlyPointers

unsigned llvm::TargetOptions::XCOFFReadOnlyPointers

When set to true, const objects with relocatable address values are put into the RO data section.

Definition at line 287 of file TargetOptions.h.

Referenced by TargetOptions().

◆ XCOFFTracebackTable

unsigned llvm::TargetOptions::XCOFFTracebackTable

Emit XCOFF traceback table.

Definition at line 176 of file TargetOptions.h.

Referenced by TargetOptions().

◆ XRayFunctionIndex

unsigned llvm::TargetOptions::XRayFunctionIndex

Emit XRay Function Index section.

Definition at line 266 of file TargetOptions.h.

Referenced by TargetOptions().


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