class TargetOptions
Declaration
class TargetOptions { /* full declaration omitted */ };
Declared at: llvm/include/llvm/Target/TargetOptions.h:124
Member Variables
- public std::pair<int, int> BinutilsVersion = {0, 0}
- If greater than 0, override the default value of MCAsmInfo::BinutilsVersion.
- public unsigned int UnsafeFPMath
- UnsafeFPMath - This flag is enabled when the -enable-unsafe-fp-math flag is specified on the command line. When this flag is off (the default), the code generator is not allowed to produce results that are "less precise" than IEEE allows. This includes use of X86 instructions like FSIN and FCOS instead of libcalls.
- public unsigned int 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.
- public unsigned int NoNaNsFPMath
- NoNaNsFPMath - This flag is enabled when the -enable-no-nans-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 NaNs.
- public unsigned int 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.
- public unsigned int NoSignedZerosFPMath
- NoSignedZerosFPMath - This flag is enabled when the -enable-no-signed-zeros-fp-math is specified on the command line. This specifies that optimizations are allowed to treat the sign of a zero argument or result as insignificant.
- public unsigned int 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
- public unsigned int 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.
- public unsigned int 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.
- public unsigned int 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).
- public unsigned int 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.
- public unsigned int 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.
- public unsigned int EnableFastISel
- EnableFastISel - This flag enables fast-path instruction selection which trades away generated code quality in favor of reducing compile time.
- public unsigned int EnableGlobalISel
- EnableGlobalISel - This flag enables global instruction selection.
- public llvm::GlobalISelAbortMode GlobalISelAbort = GlobalISelAbortMode::Enable
- EnableGlobalISelAbort - Control abort behaviour when global instruction selection fails to lower/select an instruction.
- public llvm::SwiftAsyncFramePointerMode SwiftAsyncFramePointer = SwiftAsyncFramePointerMode::Always
- Control when and how the Swift async frame pointer bit should be set.
- public unsigned int UseInitArray
- UseInitArray - Use .init_array instead of .ctors for static constructors.
- public unsigned int LowerGlobalDtorsViaCxaAtExit
- Use __cxa_atexit to register global destructors; determines how llvm.global_dtors is lowered.
- public unsigned int DisableIntegratedAS
- Disable the integrated assembler.
- public llvm::DebugCompressionType CompressDebugSections = DebugCompressionType::None
- Compress DWARF debug sections.
- public unsigned int RelaxELFRelocations
- public unsigned int FunctionSections
- Emit functions into separate sections.
- public unsigned int DataSections
- Emit data into separate sections.
- public unsigned int IgnoreXCOFFVisibility
- Do not emit visibility attribute for xcoff.
- public unsigned int XCOFFTracebackTable
- Emit XCOFF traceback table.
- public unsigned int UniqueSectionNames
- public unsigned int UniqueBasicBlockSectionNames
- Use unique names for basic block sections.
- public unsigned int TrapUnreachable
- Emit target-specific trap instruction for 'unreachable' IR instructions.
- public unsigned int NoTrapAfterNoreturn
- Do not emit a trap instruction for 'unreachable' IR instructions behind noreturn calls, even if TrapUnreachable is true.
- public unsigned int TLSSize
- Bit size of immediate TLS offsets (0 == use the default).
- public unsigned int EmulatedTLS
- EmulatedTLS - This flag enables emulated TLS model, using emutls function in the runtime library..
- public unsigned int ExplicitEmulatedTLS
- Whether -emulated-tls or -no-emulated-tls is set.
- public unsigned int EnableIPRA
- This flag enables InterProcedural Register Allocation (IPRA).
- public unsigned int EmitStackSizeSection
- Emit section containing metadata on function stack sizes.
- public unsigned int EnableMachineOutliner
- Enables the MachineOutliner pass.
- public unsigned int EnableMachineFunctionSplitter
- Enables the MachineFunctionSplitter pass.
- public unsigned int SupportsDefaultOutlining
- Set if the target supports default outlining behaviour.
- public unsigned int EmitAddrsig
- Emit address-significance table.
- public llvm::BasicBlockSection BBSections = BasicBlockSection::None
- Emit basic blocks into separate sections.
- public std::shared_ptr<MemoryBuffer> BBSectionsFuncListBuf
- Memory Buffer that contains information on sampled basic blocks and used to selectively generate basic block sections.
- public unsigned int 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.
- public unsigned int SupportsDebugEntryValues
- Set if the target supports the debug entry values by default.
- public unsigned int 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 \ref ShouldEmitDebugEntryValues instead.
- public unsigned int ValueTrackingVariableLocations
- public unsigned int ForceDwarfFrameSection
- Emit DWARF debug frame section.
- public unsigned int XRayOmitFunctionIndex
- Emit XRay Function Index section
- public unsigned int DebugStrictDwarf
- When set to true, don't use DWARF extensions in later DWARF versions. By default, it is set to false.
- public unsigned int Hotpatch
- Emit the hotpatch flag in CodeView debug.
- public unsigned int PPCGenScalarMASSEntries
- Enables scalar MASS conversions
- public unsigned int JMCInstrument
- Enable JustMyCode instrumentation.
- public unsigned int EnableCFIFixup
- Enable the CFIFixup pass.
- public unsigned int MisExpect
- When set to true, enable MisExpect Diagnostics By default, it is set to false
- public std::string 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.
- public unsigned int LoopAlignment = 0
- If greater than 0, override TargetLoweringBase::PrefLoopAlignment.
- public FloatABI::ABIType FloatABIType = FloatABI::Default
- 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.
- public FPOpFusion::FPOpFusionMode AllowFPOpFusion = FPOpFusion::Standard
- 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.
- public ThreadModel::Model ThreadModel = ThreadModel::POSIX
- ThreadModel - This flag specifies the type of threading model to assume for things like atomics
- public llvm::EABI EABIVersion = EABI::Default
- EABIVersion - This flag specifies the EABI version
- public llvm::DebuggerKind DebuggerTuning = DebuggerKind::Default
- Which debugger to tune for.
- private llvm::DenormalMode FPDenormalMode
- Flushing mode to assume in default FP environment.
- private llvm::DenormalMode FP32DenormalMode
- Flushing mode to assume in default FP environment, for float/vector of float.
- public llvm::ExceptionHandling ExceptionModel = ExceptionHandling::None
- What exception model to use
- public llvm::MCTargetOptions MCOptions
- Machine level options.
- public std::string 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.
Method Overview
- public bool DisableFramePointerElim(const llvm::MachineFunction & MF) const
- public bool HonorSignDependentRoundingFPMath() const
- public bool ShouldEmitDebugEntryValues() const
- public TargetOptions()
- public llvm::DenormalMode getDenormalMode(const llvm::fltSemantics & FPType) const
- public llvm::DenormalMode getRawFP32DenormalMode() const
- public llvm::DenormalMode getRawFPDenormalMode() const
- public void setFP32DenormalMode(llvm::DenormalMode Mode)
- public void setFPDenormalMode(llvm::DenormalMode Mode)
Methods
¶bool DisableFramePointerElim(
const llvm::MachineFunction& MF) const
bool DisableFramePointerElim(
const llvm::MachineFunction& MF) const
Description
DisableFramePointerElim - This returns true if frame pointer elimination optimization should be disabled for the given machine function.
Declared at: llvm/include/llvm/Target/TargetOptions.h:152
Parameters
- const llvm::MachineFunction& MF
¶bool HonorSignDependentRoundingFPMath() const
bool HonorSignDependentRoundingFPMath() const
Declared at: llvm/include/llvm/Target/TargetOptions.h:208
¶bool ShouldEmitDebugEntryValues() const
bool ShouldEmitDebugEntryValues() const
Description
NOTE: There are targets that still do not support the debug entry values production.
Declared at: llvm/include/llvm/Target/TargetOptions.h:334
¶TargetOptions()
TargetOptions()
Declared at: llvm/include/llvm/Target/TargetOptions.h:126
¶llvm::DenormalMode getDenormalMode(
const llvm::fltSemantics& FPType) const
llvm::DenormalMode getDenormalMode(
const llvm::fltSemantics& FPType) const
Declared at: llvm/include/llvm/Target/TargetOptions.h:436
Parameters
- const llvm::fltSemantics& FPType
¶llvm::DenormalMode getRawFP32DenormalMode() const
llvm::DenormalMode getRawFP32DenormalMode() const
Declared at: llvm/include/llvm/Target/TargetOptions.h:432
¶llvm::DenormalMode getRawFPDenormalMode() const
llvm::DenormalMode getRawFPDenormalMode() const
Declared at: llvm/include/llvm/Target/TargetOptions.h:428
¶void setFP32DenormalMode(llvm::DenormalMode Mode)
void setFP32DenormalMode(llvm::DenormalMode Mode)
Declared at: llvm/include/llvm/Target/TargetOptions.h:424
Parameters
- llvm::DenormalMode Mode
¶void setFPDenormalMode(llvm::DenormalMode Mode)
void setFPDenormalMode(llvm::DenormalMode Mode)
Declared at: llvm/include/llvm/Target/TargetOptions.h:420
Parameters
- llvm::DenormalMode Mode