LLVM: llvm::TargetOptions Class Reference (original) (raw)
#include "[llvm/Target/TargetOptions.h](TargetOptions%5F8h%5Fsource.html)"
Public Member Functions | |
---|---|
TargetOptions () | |
bool | DisableFramePointerElim (const MachineFunction &MF) const |
DisableFramePointerElim - This returns true if frame pointer elimination optimization should be disabled for the given machine function. | |
bool | FramePointerIsReserved (const MachineFunction &MF) const |
FramePointerIsReserved - This returns true if the frame pointer must always either point to a new frame record or be un-modified in the given function. | |
bool | HonorSignDependentRoundingFPMath () const |
HonorSignDependentRoundingFPMath - Return true if the codegen must assume that the rounding mode of the FPU can change from its default. | |
bool | ShouldEmitDebugEntryValues () const |
NOTE: There are targets that still do not support the debug entry values production. | |
void | setFPDenormalMode (DenormalMode Mode) |
void | setFP32DenormalMode (DenormalMode Mode) |
DenormalMode | getRawFPDenormalMode () const |
DenormalMode | getRawFP32DenormalMode () const |
DenormalMode | getDenormalMode (const fltSemantics &FPType) const |
Public Attributes | |
---|---|
std::pair< int, int > | BinutilsVersion {0, 0} |
If greater than 0, override the default value of MCAsmInfo::BinutilsVersion. | |
unsigned | UnsafeFPMath: 1 |
UnsafeFPMath - This flag is enabled when the -enable-unsafe-fp-math flag is specified on the command line. | |
unsigned | NoInfsFPMath: 1 |
NoInfsFPMath - This flag is enabled when the -enable-no-infs-fp-math flag is specified on the command line. | |
unsigned | NoNaNsFPMath: 1 |
NoNaNsFPMath - This flag is enabled when the -enable-no-nans-fp-math flag is specified on the command line. | |
unsigned | NoTrappingFPMath: 1 |
NoTrappingFPMath - This flag is enabled when the -enable-no-trapping-fp-math is specified on the command line. | |
unsigned | NoSignedZerosFPMath: 1 |
NoSignedZerosFPMath - This flag is enabled when the -enable-no-signed-zeros-fp-math is specified on the command line. | |
unsigned | ApproxFuncFPMath: 1 |
ApproxFuncFPMath - This flag is enabled when the -enable-approx-func-fp-math is specified on the command line. | |
unsigned | EnableAIXExtendedAltivecABI: 1 |
EnableAIXExtendedAltivecABI - This flag returns true when -vec-extabi is specified. | |
unsigned | HonorSignDependentRoundingFPMathOption: 1 |
HonorSignDependentRoundingFPMath - This returns true when the -enable-sign-dependent-rounding-fp-math is specified. | |
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 | DisableIntegratedAS: 1 |
Disable the integrated assembler. | |
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 | SupportsDefaultOutlining: 1 |
Set if the target supports default outlining behaviour. | |
unsigned | EmitAddrsig: 1 |
Emit address-significance table. | |
unsigned | BBAddrMap: 1 |
BasicBlockSection | BBSections = BasicBlockSection::None |
Emit basic blocks into separate sections. | |
std::shared_ptr< MemoryBuffer > | BBSectionsFuncListBuf |
Memory Buffer that contains information on sampled basic blocks and used to selectively generate basic block sections. | |
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 | PPCGenScalarMASSEntries: 1 |
Enables scalar MASS conversions. | |
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 | StackUsageOutput |
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. | |
FloatABI::ABIType | FloatABIType = FloatABI::Default |
FloatABIType - This setting is set by -float-abi=xxx option is specfied on the command line. | |
FPOpFusion::FPOpFusionMode | AllowFPOpFusion = FPOpFusion::Standard |
AllowFPOpFusion - This flag is set by the -fp-contract=xxx option. | |
ThreadModel::Model | ThreadModel = ThreadModel::POSIX |
ThreadModel - This flag specifies the type of threading model to assume for things like atomics. | |
EABI | EABIVersion = EABI::Default |
EABIVersion - This flag specifies the EABI version. | |
DebuggerKind | DebuggerTuning = DebuggerKind::Default |
Which debugger to tune for. | |
ExceptionHandling | ExceptionModel = ExceptionHandling::None |
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. | |
Definition at line 132 of file TargetOptions.h.
llvm::TargetOptions::TargetOptions ( ) | inline |
---|
◆ DisableFramePointerElim()
DisableFramePointerElim - This returns true if frame pointer elimination optimization should be disabled for the given machine function.
Definition at line 24 of file TargetOptionsImpl.cpp.
References F, FP, llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getFunction(), llvm::MachineFrameInfo::hasCalls(), and llvm_unreachable.
Referenced by llvm::ARMFrameLowering::assignCalleeSavedSpillSlots(), llvm::AArch64RegisterInfo::cannotEliminateFrame(), llvm::ARMBaseRegisterInfo::cannotEliminateFrame(), llvm::ARMFrameLowering::determineCalleeSaves(), llvm::AArch64FrameLowering::hasFPImpl(), llvm::SIFrameLowering::hasFPImpl(), llvm::ARCFrameLowering::hasFPImpl(), llvm::ARMFrameLowering::hasFPImpl(), llvm::CSKYFrameLowering::hasFPImpl(), llvm::LoongArchFrameLowering::hasFPImpl(), llvm::M68kFrameLowering::hasFPImpl(), llvm::MipsFrameLowering::hasFPImpl(), llvm::MSP430FrameLowering::hasFPImpl(), llvm::RISCVFrameLowering::hasFPImpl(), llvm::SparcFrameLowering::hasFPImpl(), llvm::SystemZELFFrameLowering::hasFPImpl(), llvm::VEFrameLowering::hasFPImpl(), llvm::X86FrameLowering::hasFPImpl(), llvm::XCoreFrameLowering::hasFPImpl(), llvm::XtensaFrameLowering::hasFPImpl(), llvm::RISCVMachineFunctionInfo::isPushable(), llvm::PPCFrameLowering::needsFP(), and llvm::DwarfCompileUnit::updateSubprogramScopeDIE().
◆ FramePointerIsReserved()
◆ getDenormalMode()
◆ getRawFP32DenormalMode()
DenormalMode llvm::TargetOptions::getRawFP32DenormalMode ( ) const | inline |
---|
◆ getRawFPDenormalMode()
DenormalMode llvm::TargetOptions::getRawFPDenormalMode ( ) const | inline |
---|
◆ HonorSignDependentRoundingFPMath()
bool TargetOptions::HonorSignDependentRoundingFPMath | ( | ) | const |
---|
◆ setFP32DenormalMode()
void llvm::TargetOptions::setFP32DenormalMode ( DenormalMode Mode) | inline |
---|
◆ setFPDenormalMode()
void llvm::TargetOptions::setFPDenormalMode ( DenormalMode Mode) | inline |
---|
◆ 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 62 of file TargetOptionsImpl.cpp.
References DebuggerTuning, EnableDebugEntryValues, llvm::SCE, and SupportsDebugEntryValues.
Referenced by llvm::DwarfDebug::DwarfDebug().
◆ AllowFPOpFusion
AllowFPOpFusion - This flag is set by the -fp-contract=xxx option.
This controls the creation of fused FP ops that store intermediate results in higher precision than IEEE allows (E.g. FMAs).
Fast mode - allows formation of fused FP ops whenever they're profitable. Standard mode - allow fusion only for 'blessed' FP ops. At present the only blessed op is the fmuladd intrinsic. In the future more blessed ops may be added. Strict mode - allow fusion only if/when it can be proven that the excess precision won't effect the result.
Note: This option only controls formation of fused ops by the optimizers. Fused operations that are explicitly specified (e.g. FMA via the llvm.fma.* intrinsic) will always be honored, regardless of the value of this option.
Definition at line 420 of file TargetOptions.h.
Referenced by llvm::NVPTXTargetLowering::allowFMA(), and combineFaddCFmul().
◆ ApproxFuncFPMath
unsigned llvm::TargetOptions::ApproxFuncFPMath
ApproxFuncFPMath - This flag is enabled when the -enable-approx-func-fp-math is specified on the command line.
This specifies that optimizations are allowed to substitute math functions with approximate calculations
Definition at line 205 of file TargetOptions.h.
◆ BBAddrMap
◆ BBSections
◆ BBSectionsFuncListBuf
std::shared_ptr<MemoryBuffer> llvm::TargetOptions::BBSectionsFuncListBuf
◆ BinutilsVersion
std::pair<int, int> llvm::TargetOptions::BinutilsVersion {0, 0}
◆ DataSections
unsigned llvm::TargetOptions::DataSections
◆ DebuggerTuning
◆ DebugStrictDwarf
unsigned llvm::TargetOptions::DebugStrictDwarf
◆ DisableIntegratedAS
unsigned llvm::TargetOptions::DisableIntegratedAS
◆ EABIVersion
◆ EmitAddrsig
unsigned llvm::TargetOptions::EmitAddrsig
◆ 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 335 of file TargetOptions.h.
Referenced by llvm::ScheduleDAGSDNodes::EmitSchedule().
◆ EmitStackSizeSection
unsigned llvm::TargetOptions::EmitStackSizeSection
◆ EmulatedTLS
unsigned llvm::TargetOptions::EmulatedTLS
◆ EnableAIXExtendedAltivecABI
unsigned llvm::TargetOptions::EnableAIXExtendedAltivecABI
EnableAIXExtendedAltivecABI - This flag returns true when -vec-extabi is specified.
The code generator is then able to use both volatile and nonvolitle vector registers. When false, the code generator only uses volatile vector registers which is the default setting on AIX.
Definition at line 211 of file TargetOptions.h.
Referenced by llvm::TargetMachine::getAIXExtendedAltivecABI().
◆ EnableCFIFixup
unsigned llvm::TargetOptions::EnableCFIFixup
◆ EnableDebugEntryValues
unsigned llvm::TargetOptions::EnableDebugEntryValues
◆ EnableFastISel
unsigned llvm::TargetOptions::EnableFastISel
◆ EnableGlobalISel
unsigned llvm::TargetOptions::EnableGlobalISel
◆ EnableIPRA
unsigned llvm::TargetOptions::EnableIPRA
◆ EnableMachineFunctionSplitter
unsigned llvm::TargetOptions::EnableMachineFunctionSplitter
◆ EnableMachineOutliner
unsigned llvm::TargetOptions::EnableMachineOutliner
◆ EnableTLSDESC
unsigned llvm::TargetOptions::EnableTLSDESC
◆ ExceptionModel
◆ FloatABIType
FloatABIType - This setting is set by -float-abi=xxx option is specfied on the command line.
This setting may either be Default, Soft, or Hard. Default selects the target's default behavior. Soft selects the ABI for software floating point, but does not indicate that FP hardware may not be used. Such a combination is unfortunately popular (e.g. arm-apple-darwin). Hard presumes that the normal FP ABI is used.
Definition at line 402 of file TargetOptions.h.
Referenced by llvm::ARMBaseTargetMachine::ARMBaseTargetMachine(), and llvm::CSKYSubtarget::useHardFloatABI().
◆ ForceDwarfFrameSection
unsigned llvm::TargetOptions::ForceDwarfFrameSection
◆ FunctionSections
unsigned llvm::TargetOptions::FunctionSections
◆ GlobalISelAbort
◆ 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 234 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::SITargetLowering::LowerCall(), llvm::AArch64CallLowering::lowerCall(), llvm::AArch64CallLowering::lowerFormalArguments(), llvm::AMDGPUCallLowering::lowerTailCall(), llvm::PPCFrameLowering::needsFP(), and llvm::PPCFrameLowering::processFunctionBeforeFrameFinalized().
◆ HonorSignDependentRoundingFPMathOption
unsigned llvm::TargetOptions::HonorSignDependentRoundingFPMathOption
HonorSignDependentRoundingFPMath - This returns true when the -enable-sign-dependent-rounding-fp-math is specified.
If this returns false (the default), the code generator is allowed to assume that the rounding behavior is the default (round-to-zero for all floating point to integer conversions, and round-to-nearest for all other arithmetic truncations). If this is enabled (set to true), the code generator must assume that the rounding mode may dynamically change.
Definition at line 220 of file TargetOptions.h.
Referenced by HonorSignDependentRoundingFPMath().
◆ Hotpatch
◆ IgnoreXCOFFVisibility
unsigned llvm::TargetOptions::IgnoreXCOFFVisibility
◆ JMCInstrument
unsigned llvm::TargetOptions::JMCInstrument
◆ LoopAlignment
unsigned llvm::TargetOptions::LoopAlignment = 0
◆ MCOptions
Machine level options.
Definition at line 463 of file TargetOptions.h.
Referenced by llvm::DwarfDebug::addDwarfTypeUnitType(), llvm::CodeGenTargetMachineImpl::addPassesToEmitMC(), llvm::computeLTOCacheKey(), llvm::CodeGenTargetMachineImpl::createMCStreamer(), llvm::AsmPrinter::doInitialization(), llvm::DwarfDebug::DwarfDebug(), llvm::X86AsmPrinter::emitInstruction(), llvm::LoongArchTargetMachine::getSubtargetImpl(), llvm::RISCVTargetMachine::getSubtargetImpl(), llvm::CodeGenTargetMachineImpl::initAsmInfo(), and LLVMCreateTargetMachineWithOptions().
◆ MisExpect
When set to true, enable MisExpect Diagnostics By default, it is set to false.
Definition at line 376 of file TargetOptions.h.
◆ NoInfsFPMath
unsigned llvm::TargetOptions::NoInfsFPMath
NoInfsFPMath - This flag is enabled when the -enable-no-infs-fp-math flag is specified on the command line.
When this flag is off (the default), the code generator is not allowed to assume the FP arithmetic arguments and results are never +-Infs.
Definition at line 182 of file TargetOptions.h.
◆ NoNaNsFPMath
unsigned llvm::TargetOptions::NoNaNsFPMath
◆ NoSignedZerosFPMath
unsigned llvm::TargetOptions::NoSignedZerosFPMath
◆ NoTrapAfterNoreturn
unsigned llvm::TargetOptions::NoTrapAfterNoreturn
◆ NoTrappingFPMath
unsigned llvm::TargetOptions::NoTrappingFPMath
NoTrappingFPMath - This flag is enabled when the -enable-no-trapping-fp-math is specified on the command line.
This specifies that there are no trap handlers to handle exceptions.
Definition at line 193 of file TargetOptions.h.
◆ NoZerosInBSS
unsigned llvm::TargetOptions::NoZerosInBSS
◆ 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 468 of file TargetOptions.h.
◆ PPCGenScalarMASSEntries
unsigned llvm::TargetOptions::PPCGenScalarMASSEntries
◆ SeparateNamedSections
unsigned llvm::TargetOptions::SeparateNamedSections
◆ 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 240 of file TargetOptions.h.
◆ StackUsageOutput
std::string llvm::TargetOptions::StackUsageOutput
◆ SupportsDebugEntryValues
unsigned llvm::TargetOptions::SupportsDebugEntryValues
◆ SupportsDefaultOutlining
unsigned llvm::TargetOptions::SupportsDefaultOutlining
◆ SwiftAsyncFramePointer
◆ ThreadModel
◆ TLSSize
◆ TrapUnreachable
unsigned llvm::TargetOptions::TrapUnreachable
◆ UniqueBasicBlockSectionNames
unsigned llvm::TargetOptions::UniqueBasicBlockSectionNames
◆ UniqueSectionNames
unsigned llvm::TargetOptions::UniqueSectionNames
◆ UnsafeFPMath
unsigned llvm::TargetOptions::UnsafeFPMath
◆ UseInitArray
unsigned llvm::TargetOptions::UseInitArray
◆ ValueTrackingVariableLocations
unsigned llvm::TargetOptions::ValueTrackingVariableLocations
◆ 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 386 of file TargetOptions.h.
◆ XCOFFReadOnlyPointers
unsigned llvm::TargetOptions::XCOFFReadOnlyPointers
◆ XCOFFTracebackTable
unsigned llvm::TargetOptions::XCOFFTracebackTable
◆ XRayFunctionIndex
unsigned llvm::TargetOptions::XRayFunctionIndex
The documentation for this class was generated from the following files:
- include/llvm/Target/TargetOptions.h
- lib/CodeGen/TargetOptionsImpl.cpp