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

Methods

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

Declared at: llvm/include/llvm/Target/TargetOptions.h:208

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()

Declared at: llvm/include/llvm/Target/TargetOptions.h:126

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

Declared at: llvm/include/llvm/Target/TargetOptions.h:432

llvm::DenormalMode getRawFPDenormalMode() const

Declared at: llvm/include/llvm/Target/TargetOptions.h:428

void setFP32DenormalMode(llvm::DenormalMode Mode)

Declared at: llvm/include/llvm/Target/TargetOptions.h:424

Parameters

llvm::DenormalMode Mode

void setFPDenormalMode(llvm::DenormalMode Mode)

Declared at: llvm/include/llvm/Target/TargetOptions.h:420

Parameters

llvm::DenormalMode Mode