LLVM  13.0.0git
TargetOptions.h
Go to the documentation of this file.
1 //===-- llvm/Target/TargetOptions.h - Target Options ------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 //
9 // This file defines command line option flags that are shared across various
10 // targets.
11 //
12 //===----------------------------------------------------------------------===//
13 
14 #ifndef LLVM_TARGET_TARGETOPTIONS_H
15 #define LLVM_TARGET_TARGETOPTIONS_H
16 
19 
20 #include <memory>
21 
22 namespace llvm {
23  struct fltSemantics;
24  class MachineFunction;
25  class MemoryBuffer;
26 
27  namespace FloatABI {
28  enum ABIType {
29  Default, // Target-specific (either soft or hard depending on triple, etc).
30  Soft, // Soft float.
31  Hard // Hard float.
32  };
33  }
34 
35  namespace FPOpFusion {
37  Fast, // Enable fusion of FP ops wherever it's profitable.
38  Standard, // Only allow fusion of 'blessed' ops (currently just fmuladd).
39  Strict // Never fuse FP-ops.
40  };
41  }
42 
43  namespace JumpTable {
45  Single, // Use a single table for all indirect jumptable calls.
46  Arity, // Use one table per number of function parameters.
47  Simplified, // Use one table per function type, with types projected
48  // into 4 types: pointer to non-function, struct,
49  // primitive, and function pointer.
50  Full // Use one table per unique function type
51  };
52  }
53 
54  namespace ThreadModel {
55  enum Model {
56  POSIX, // POSIX Threads
57  Single // Single Threaded Environment
58  };
59  }
60 
61  enum class BasicBlockSection {
62  All, // Use Basic Block Sections for all basic blocks. A section
63  // for every basic block can significantly bloat object file sizes.
64  List, // Get list of functions & BBs from a file. Selectively enables
65  // basic block sections for a subset of basic blocks which can be
66  // used to control object size bloats from creating sections.
67  Labels, // Do not use Basic Block Sections but label basic blocks. This
68  // is useful when associating profile counts from virtual addresses
69  // to basic blocks.
70  Preset, // Similar to list but the blocks are identified by passes which
71  // seek to use Basic Block Sections, e.g. MachineFunctionSplitter.
72  // This option cannot be set via the command line.
73  None // Do not use Basic Block Sections.
74  };
75 
76  enum class EABI {
77  Unknown,
78  Default, // Default means not specified
79  EABI4, // Target-specific (either 4, 5 or gnu depending on triple).
80  EABI5,
81  GNU
82  };
83 
84  /// Identify a debugger for "tuning" the debug info.
85  ///
86  /// The "debugger tuning" concept allows us to present a more intuitive
87  /// interface that unpacks into different sets of defaults for the various
88  /// individual feature-flag settings, that suit the preferences of the
89  /// various debuggers. However, it's worth remembering that debuggers are
90  /// not the only consumers of debug info, and some variations in DWARF might
91  /// better be treated as target/platform issues. Fundamentally,
92  /// o if the feature is useful (or not) to a particular debugger, regardless
93  /// of the target, that's a tuning decision;
94  /// o if the feature is useful (or not) on a particular platform, regardless
95  /// of the debugger, that's a target decision.
96  /// It's not impossible to see both factors in some specific case.
97  enum class DebuggerKind {
98  Default, ///< No specific tuning requested.
99  GDB, ///< Tune debug info for gdb.
100  LLDB, ///< Tune debug info for lldb.
101  SCE, ///< Tune debug info for SCE targets (e.g. PS4).
102  DBX ///< Tune debug info for dbx.
103  };
104 
105  /// Enable abort calls when global instruction selection fails to lower/select
106  /// an instruction.
107  enum class GlobalISelAbortMode {
108  Disable, // Disable the abort.
109  Enable, // Enable the abort.
110  DisableWithDiag // Disable the abort but emit a diagnostic on failure.
111  };
112 
114  public:
135  FPDenormalMode(DenormalMode::IEEE, DenormalMode::IEEE) {}
136 
137  /// DisableFramePointerElim - This returns true if frame pointer elimination
138  /// optimization should be disabled for the given machine function.
139  bool DisableFramePointerElim(const MachineFunction &MF) const;
140 
141  /// If greater than 0, override the default value of
142  /// MCAsmInfo::BinutilsVersion.
143  std::pair<int, int> BinutilsVersion{0, 0};
144 
145  /// UnsafeFPMath - This flag is enabled when the
146  /// -enable-unsafe-fp-math flag is specified on the command line. When
147  /// this flag is off (the default), the code generator is not allowed to
148  /// produce results that are "less precise" than IEEE allows. This includes
149  /// use of X86 instructions like FSIN and FCOS instead of libcalls.
150  unsigned UnsafeFPMath : 1;
151 
152  /// NoInfsFPMath - This flag is enabled when the
153  /// -enable-no-infs-fp-math flag is specified on the command line. When
154  /// this flag is off (the default), the code generator is not allowed to
155  /// assume the FP arithmetic arguments and results are never +-Infs.
156  unsigned NoInfsFPMath : 1;
157 
158  /// NoNaNsFPMath - This flag is enabled when the
159  /// -enable-no-nans-fp-math flag is specified on the command line. When
160  /// this flag is off (the default), the code generator is not allowed to
161  /// assume the FP arithmetic arguments and results are never NaNs.
162  unsigned NoNaNsFPMath : 1;
163 
164  /// NoTrappingFPMath - This flag is enabled when the
165  /// -enable-no-trapping-fp-math is specified on the command line. This
166  /// specifies that there are no trap handlers to handle exceptions.
167  unsigned NoTrappingFPMath : 1;
168 
169  /// NoSignedZerosFPMath - This flag is enabled when the
170  /// -enable-no-signed-zeros-fp-math is specified on the command line. This
171  /// specifies that optimizations are allowed to treat the sign of a zero
172  /// argument or result as insignificant.
173  unsigned NoSignedZerosFPMath : 1;
174 
175  /// EnableAIXExtendedAltivecABI - This flag returns true when -vec-extabi is
176  /// specified. The code generator is then able to use both volatile and
177  /// nonvolitle vector regisers. When false, the code generator only uses
178  /// volatile vector registers which is the default setting on AIX.
180 
181  /// HonorSignDependentRoundingFPMath - This returns true when the
182  /// -enable-sign-dependent-rounding-fp-math is specified. If this returns
183  /// false (the default), the code generator is allowed to assume that the
184  /// rounding behavior is the default (round-to-zero for all floating point
185  /// to integer conversions, and round-to-nearest for all other arithmetic
186  /// truncations). If this is enabled (set to true), the code generator must
187  /// assume that the rounding mode may dynamically change.
190 
191  /// NoZerosInBSS - By default some codegens place zero-initialized data to
192  /// .bss section. This flag disables such behaviour (necessary, e.g. for
193  /// crt*.o compiling).
194  unsigned NoZerosInBSS : 1;
195 
196  /// GuaranteedTailCallOpt - This flag is enabled when -tailcallopt is
197  /// specified on the commandline. When the flag is on, participating targets
198  /// will perform tail call optimization on all calls which use the fastcc
199  /// calling convention and which satisfy certain target-independent
200  /// criteria (being at the end of a function, having the same return type
201  /// as their parent function, etc.), using an alternate ABI if necessary.
202  unsigned GuaranteedTailCallOpt : 1;
203 
204  /// StackSymbolOrdering - When true, this will allow CodeGen to order
205  /// the local stack symbols (for code size, code locality, or any other
206  /// heuristics). When false, the local symbols are left in whatever order
207  /// they were generated. Default is true.
208  unsigned StackSymbolOrdering : 1;
209 
210  /// EnableFastISel - This flag enables fast-path instruction selection
211  /// which trades away generated code quality in favor of reducing
212  /// compile time.
213  unsigned EnableFastISel : 1;
214 
215  /// EnableGlobalISel - This flag enables global instruction selection.
216  unsigned EnableGlobalISel : 1;
217 
218  /// EnableGlobalISelAbort - Control abort behaviour when global instruction
219  /// selection fails to lower/select an instruction.
221 
222  /// UseInitArray - Use .init_array instead of .ctors for static
223  /// constructors.
224  unsigned UseInitArray : 1;
225 
226  /// Disable the integrated assembler.
227  unsigned DisableIntegratedAS : 1;
228 
229  /// Compress DWARF debug sections.
231 
232  unsigned RelaxELFRelocations : 1;
233 
234  /// Emit functions into separate sections.
235  unsigned FunctionSections : 1;
236 
237  /// Emit data into separate sections.
238  unsigned DataSections : 1;
239 
240  /// Do not emit visibility attribute for xcoff.
241  unsigned IgnoreXCOFFVisibility : 1;
242 
243  /// Emit XCOFF traceback table.
244  unsigned XCOFFTracebackTable : 1;
245 
246  unsigned UniqueSectionNames : 1;
247 
248  /// Use unique names for basic block sections.
250 
251  /// Emit target-specific trap instruction for 'unreachable' IR instructions.
252  unsigned TrapUnreachable : 1;
253 
254  /// Do not emit a trap instruction for 'unreachable' IR instructions behind
255  /// noreturn calls, even if TrapUnreachable is true.
256  unsigned NoTrapAfterNoreturn : 1;
257 
258  /// Bit size of immediate TLS offsets (0 == use the default).
259  unsigned TLSSize : 8;
260 
261  /// EmulatedTLS - This flag enables emulated TLS model, using emutls
262  /// function in the runtime library..
263  unsigned EmulatedTLS : 1;
264 
265  /// Whether -emulated-tls or -no-emulated-tls is set.
266  unsigned ExplicitEmulatedTLS : 1;
267 
268  /// This flag enables InterProcedural Register Allocation (IPRA).
269  unsigned EnableIPRA : 1;
270 
271  /// Emit section containing metadata on function stack sizes.
272  unsigned EmitStackSizeSection : 1;
273 
274  /// Enables the MachineOutliner pass.
275  unsigned EnableMachineOutliner : 1;
276 
277  /// Enables the MachineFunctionSplitter pass.
279 
280  /// Set if the target supports default outlining behaviour.
282 
283  /// Emit address-significance table.
284  unsigned EmitAddrsig : 1;
285 
286  /// Emit basic blocks into separate sections.
288 
289  /// Memory Buffer that contains information on sampled basic blocks and used
290  /// to selectively generate basic block sections.
291  std::shared_ptr<MemoryBuffer> BBSectionsFuncListBuf;
292 
293  /// The flag enables call site info production. It is used only for debug
294  /// info, and it is restricted only to optimized code. This can be used for
295  /// something else, so that should be controlled in the frontend.
296  unsigned EmitCallSiteInfo : 1;
297  /// Set if the target supports the debug entry values by default.
299  /// When set to true, the EnableDebugEntryValues option forces production
300  /// of debug entry values even if the target does not officially support
301  /// it. Useful for testing purposes only. This flag should never be checked
302  /// directly, always use \ref ShouldEmitDebugEntryValues instead.
304  /// NOTE: There are targets that still do not support the debug entry values
305  /// production.
306  bool ShouldEmitDebugEntryValues() const;
307 
308  /// Emit pseudo probes into the binary for sample profiling
310 
311  // When set to true, use experimental new debug variable location tracking,
312  // which seeks to follow the values of variables rather than their location,
313  // post isel.
315 
316  /// Emit DWARF debug frame section.
318 
319  /// Emit XRay Function Index section
320  unsigned XRayOmitFunctionIndex : 1;
321 
322  /// When set to true, don't use DWARF extensions in later DWARF versions.
323  /// By default, it is set to false.
324  unsigned DebugStrictDwarf : 1;
325 
326  /// Name of the stack usage file (i.e., .su file) if user passes
327  /// -fstack-usage. If empty, it can be implied that -fstack-usage is not
328  /// passed on the command line.
329  std::string StackUsageOutput;
330 
331  /// FloatABIType - This setting is set by -float-abi=xxx option is specfied
332  /// on the command line. This setting may either be Default, Soft, or Hard.
333  /// Default selects the target's default behavior. Soft selects the ABI for
334  /// software floating point, but does not indicate that FP hardware may not
335  /// be used. Such a combination is unfortunately popular (e.g.
336  /// arm-apple-darwin). Hard presumes that the normal FP ABI is used.
338 
339  /// AllowFPOpFusion - This flag is set by the -fp-contract=xxx option.
340  /// This controls the creation of fused FP ops that store intermediate
341  /// results in higher precision than IEEE allows (E.g. FMAs).
342  ///
343  /// Fast mode - allows formation of fused FP ops whenever they're
344  /// profitable.
345  /// Standard mode - allow fusion only for 'blessed' FP ops. At present the
346  /// only blessed op is the fmuladd intrinsic. In the future more blessed ops
347  /// may be added.
348  /// Strict mode - allow fusion only if/when it can be proven that the excess
349  /// precision won't effect the result.
350  ///
351  /// Note: This option only controls formation of fused ops by the
352  /// optimizers. Fused operations that are explicitly specified (e.g. FMA
353  /// via the llvm.fma.* intrinsic) will always be honored, regardless of
354  /// the value of this option.
356 
357  /// ThreadModel - This flag specifies the type of threading model to assume
358  /// for things like atomics
360 
361  /// EABIVersion - This flag specifies the EABI version
363 
364  /// Which debugger to tune for.
366 
367  private:
368  /// Flushing mode to assume in default FP environment.
369  DenormalMode FPDenormalMode;
370 
371  /// Flushing mode to assume in default FP environment, for float/vector of
372  /// float.
373  DenormalMode FP32DenormalMode;
374 
375  public:
377  FPDenormalMode = Mode;
378  }
379 
381  FP32DenormalMode = Mode;
382  }
383 
385  return FPDenormalMode;
386  }
387 
389  return FP32DenormalMode;
390  }
391 
392  DenormalMode getDenormalMode(const fltSemantics &FPType) const;
393 
394  /// What exception model to use
396 
397  /// Machine level options.
399  };
400 
401 } // End llvm namespace
402 
403 #endif
llvm::TargetOptions::EmitStackSizeSection
unsigned EmitStackSizeSection
Emit section containing metadata on function stack sizes.
Definition: TargetOptions.h:272
llvm::TargetOptions::HonorSignDependentRoundingFPMathOption
unsigned HonorSignDependentRoundingFPMathOption
HonorSignDependentRoundingFPMath - This returns true when the -enable-sign-dependent-rounding-fp-math...
Definition: TargetOptions.h:188
FloatingPointMode.h
llvm::TargetOptions::StackUsageOutput
std::string StackUsageOutput
Name of the stack usage file (i.e., .su file) if user passes -fstack-usage.
Definition: TargetOptions.h:329
llvm::JumpTable::Arity
@ Arity
Definition: TargetOptions.h:46
llvm
---------------------— PointerInfo ------------------------------------—
Definition: AllocatorList.h:23
llvm::TargetOptions::GuaranteedTailCallOpt
unsigned GuaranteedTailCallOpt
GuaranteedTailCallOpt - This flag is enabled when -tailcallopt is specified on the commandline.
Definition: TargetOptions.h:202
llvm::EABI::GNU
@ GNU
MCTargetOptions.h
llvm::TargetOptions::NoZerosInBSS
unsigned NoZerosInBSS
NoZerosInBSS - By default some codegens place zero-initialized data to .bss section.
Definition: TargetOptions.h:194
llvm::DebuggerKind
DebuggerKind
Identify a debugger for "tuning" the debug info.
Definition: TargetOptions.h:97
llvm::TargetOptions
Definition: TargetOptions.h:113
llvm::FPOpFusion::Standard
@ Standard
Definition: TargetOptions.h:38
llvm::TargetOptions::EnableAIXExtendedAltivecABI
unsigned EnableAIXExtendedAltivecABI
EnableAIXExtendedAltivecABI - This flag returns true when -vec-extabi is specified.
Definition: TargetOptions.h:179
llvm::TargetOptions::BBSectionsFuncListBuf
std::shared_ptr< MemoryBuffer > BBSectionsFuncListBuf
Memory Buffer that contains information on sampled basic blocks and used to selectively generate basi...
Definition: TargetOptions.h:291
llvm::EABI::Default
@ Default
llvm::ThreadModel::POSIX
@ POSIX
Definition: TargetOptions.h:56
llvm::TargetOptions::EABIVersion
EABI EABIVersion
EABIVersion - This flag specifies the EABI version.
Definition: TargetOptions.h:362
llvm::TargetOptions::BBSections
BasicBlockSection BBSections
Emit basic blocks into separate sections.
Definition: TargetOptions.h:287
llvm::TargetOptions::setFP32DenormalMode
void setFP32DenormalMode(DenormalMode Mode)
Definition: TargetOptions.h:380
llvm::FloatABI::ABIType
ABIType
Definition: TargetOptions.h:28
llvm::TargetOptions::NoSignedZerosFPMath
unsigned NoSignedZerosFPMath
NoSignedZerosFPMath - This flag is enabled when the -enable-no-signed-zeros-fp-math is specified on t...
Definition: TargetOptions.h:173
llvm::TargetOptions::TrapUnreachable
unsigned TrapUnreachable
Emit target-specific trap instruction for 'unreachable' IR instructions.
Definition: TargetOptions.h:252
llvm::FPOpFusion::FPOpFusionMode
FPOpFusionMode
Definition: TargetOptions.h:36
llvm::TargetOptions::HonorSignDependentRoundingFPMath
bool HonorSignDependentRoundingFPMath() const
HonorSignDependentRoundingFPMath - Return true if the codegen must assume that the rounding mode of t...
Definition: TargetOptionsImpl.cpp:45
llvm::FloatABI::Hard
@ Hard
Definition: TargetOptions.h:31
llvm::TargetOptions::CompressDebugSections
DebugCompressionType CompressDebugSections
Compress DWARF debug sections.
Definition: TargetOptions.h:230
llvm::DebuggerKind::GDB
@ GDB
Tune debug info for gdb.
llvm::JumpTable::Full
@ Full
Definition: TargetOptions.h:50
llvm::TargetOptions::EnableMachineFunctionSplitter
unsigned EnableMachineFunctionSplitter
Enables the MachineFunctionSplitter pass.
Definition: TargetOptions.h:278
llvm::BasicBlockSection::List
@ List
llvm::BasicBlockSection::None
@ None
llvm::JumpTable::JumpTableType
JumpTableType
Definition: TargetOptions.h:44
llvm::TargetOptions::NoInfsFPMath
unsigned NoInfsFPMath
NoInfsFPMath - This flag is enabled when the -enable-no-infs-fp-math flag is specified on the command...
Definition: TargetOptions.h:156
llvm::DebugCompressionType::None
@ None
No compression.
llvm::TargetOptions::UniqueSectionNames
unsigned UniqueSectionNames
Definition: TargetOptions.h:246
llvm::ExceptionHandling
ExceptionHandling
Definition: MCTargetOptions.h:18
llvm::TargetOptions::UseInitArray
unsigned UseInitArray
UseInitArray - Use .init_array instead of .ctors for static constructors.
Definition: TargetOptions.h:224
llvm::TargetOptions::EnableIPRA
unsigned EnableIPRA
This flag enables InterProcedural Register Allocation (IPRA).
Definition: TargetOptions.h:269
llvm::TargetOptions::ForceDwarfFrameSection
unsigned ForceDwarfFrameSection
Emit DWARF debug frame section.
Definition: TargetOptions.h:317
llvm::TargetOptions::SupportsDefaultOutlining
unsigned SupportsDefaultOutlining
Set if the target supports default outlining behaviour.
Definition: TargetOptions.h:281
llvm::JumpTable::Simplified
@ Simplified
Definition: TargetOptions.h:47
false
Definition: StackSlotColoring.cpp:142
llvm::TargetOptions::MCOptions
MCTargetOptions MCOptions
Machine level options.
Definition: TargetOptions.h:398
llvm::FloatABI::Default
@ Default
Definition: TargetOptions.h:29
llvm::TargetOptions::ExceptionModel
ExceptionHandling ExceptionModel
What exception model to use.
Definition: TargetOptions.h:395
llvm::BasicBlockSection::Labels
@ Labels
llvm::JumpTable::Single
@ Single
Definition: TargetOptions.h:45
llvm::TargetOptions::EmulatedTLS
unsigned EmulatedTLS
EmulatedTLS - This flag enables emulated TLS model, using emutls function in the runtime library.
Definition: TargetOptions.h:263
llvm::TargetOptions::getRawFPDenormalMode
DenormalMode getRawFPDenormalMode() const
Definition: TargetOptions.h:384
llvm::BasicBlockSection::All
@ All
llvm::TargetOptions::RelaxELFRelocations
unsigned RelaxELFRelocations
Definition: TargetOptions.h:232
llvm::TargetOptions::FloatABIType
FloatABI::ABIType FloatABIType
FloatABIType - This setting is set by -float-abi=xxx option is specfied on the command line.
Definition: TargetOptions.h:337
llvm::TargetOptions::ThreadModel
ThreadModel::Model ThreadModel
ThreadModel - This flag specifies the type of threading model to assume for things like atomics.
Definition: TargetOptions.h:359
llvm::EABI::EABI4
@ EABI4
llvm::TargetOptions::ValueTrackingVariableLocations
unsigned ValueTrackingVariableLocations
Definition: TargetOptions.h:314
llvm::DebuggerKind::DBX
@ DBX
Tune debug info for dbx.
llvm::TargetOptions::NoTrappingFPMath
unsigned NoTrappingFPMath
NoTrappingFPMath - This flag is enabled when the -enable-no-trapping-fp-math is specified on the comm...
Definition: TargetOptions.h:167
llvm::TargetOptions::DisableFramePointerElim
bool DisableFramePointerElim(const MachineFunction &MF) const
DisableFramePointerElim - This returns true if frame pointer elimination optimization should be disab...
Definition: TargetOptionsImpl.cpp:24
llvm::TargetOptions::EnableGlobalISel
unsigned EnableGlobalISel
EnableGlobalISel - This flag enables global instruction selection.
Definition: TargetOptions.h:216
llvm::TargetOptions::PseudoProbeForProfiling
unsigned PseudoProbeForProfiling
Emit pseudo probes into the binary for sample profiling.
Definition: TargetOptions.h:309
llvm::EABI::Unknown
@ Unknown
llvm::TargetOptions::getRawFP32DenormalMode
DenormalMode getRawFP32DenormalMode() const
Definition: TargetOptions.h:388
llvm::TargetOptions::SupportsDebugEntryValues
unsigned SupportsDebugEntryValues
Set if the target supports the debug entry values by default.
Definition: TargetOptions.h:298
llvm::BasicBlockSection::Preset
@ Preset
llvm::TargetOptions::EmitAddrsig
unsigned EmitAddrsig
Emit address-significance table.
Definition: TargetOptions.h:284
llvm::TargetOptions::NoTrapAfterNoreturn
unsigned NoTrapAfterNoreturn
Do not emit a trap instruction for 'unreachable' IR instructions behind noreturn calls,...
Definition: TargetOptions.h:256
llvm::DenormalMode
Represent subnormal handling kind for floating point instruction inputs and outputs.
Definition: FloatingPointMode.h:67
llvm::TargetOptions::TargetOptions
TargetOptions()
Definition: TargetOptions.h:115
llvm::TargetOptions::ShouldEmitDebugEntryValues
bool ShouldEmitDebugEntryValues() const
NOTE: There are targets that still do not support the debug entry values production.
Definition: TargetOptionsImpl.cpp:54
llvm::TargetOptions::XRayOmitFunctionIndex
unsigned XRayOmitFunctionIndex
Emit XRay Function Index section.
Definition: TargetOptions.h:320
llvm::TargetOptions::TLSSize
unsigned TLSSize
Bit size of immediate TLS offsets (0 == use the default).
Definition: TargetOptions.h:259
Mode
SI Whole Quad Mode
Definition: SIWholeQuadMode.cpp:262
llvm::MCTargetOptions
Definition: MCTargetOptions.h:36
llvm::GlobalISelAbortMode
GlobalISelAbortMode
Enable abort calls when global instruction selection fails to lower/select an instruction.
Definition: TargetOptions.h:107
llvm::TargetOptions::EnableFastISel
unsigned EnableFastISel
EnableFastISel - This flag enables fast-path instruction selection which trades away generated code q...
Definition: TargetOptions.h:213
llvm::MachineFunction
Definition: MachineFunction.h:230
llvm::TargetOptions::IgnoreXCOFFVisibility
unsigned IgnoreXCOFFVisibility
Do not emit visibility attribute for xcoff.
Definition: TargetOptions.h:241
llvm::DebugCompressionType
DebugCompressionType
Definition: MCTargetOptions.h:28
llvm::DebuggerKind::Default
@ Default
No specific tuning requested.
llvm::TargetOptions::BinutilsVersion
std::pair< int, int > BinutilsVersion
If greater than 0, override the default value of MCAsmInfo::BinutilsVersion.
Definition: TargetOptions.h:143
llvm::GlobalISelAbortMode::DisableWithDiag
@ DisableWithDiag
llvm::TargetOptions::DebugStrictDwarf
unsigned DebugStrictDwarf
When set to true, don't use DWARF extensions in later DWARF versions.
Definition: TargetOptions.h:324
llvm::TargetOptions::XCOFFTracebackTable
unsigned XCOFFTracebackTable
Emit XCOFF traceback table.
Definition: TargetOptions.h:244
llvm::EABI::EABI5
@ EABI5
llvm::TargetOptions::EmitCallSiteInfo
unsigned EmitCallSiteInfo
The flag enables call site info production.
Definition: TargetOptions.h:296
llvm::TargetOptions::DebuggerTuning
DebuggerKind DebuggerTuning
Which debugger to tune for.
Definition: TargetOptions.h:365
llvm::TargetOptions::UniqueBasicBlockSectionNames
unsigned UniqueBasicBlockSectionNames
Use unique names for basic block sections.
Definition: TargetOptions.h:249
llvm::FPOpFusion::Strict
@ Strict
Definition: TargetOptions.h:39
llvm::TargetOptions::GlobalISelAbort
GlobalISelAbortMode GlobalISelAbort
EnableGlobalISelAbort - Control abort behaviour when global instruction selection fails to lower/sele...
Definition: TargetOptions.h:220
JumpTable
MIPS Relocation Principles In there are several elements of the llvm::ISD::NodeType enum that deal with addresses and or relocations These are defined in include llvm Target TargetSelectionDAG td JumpTable
Definition: Relocation.txt:6
llvm::fltSemantics
Definition: APFloat.cpp:54
llvm::TargetOptions::DataSections
unsigned DataSections
Emit data into separate sections.
Definition: TargetOptions.h:238
llvm::ThreadModel::Single
@ Single
Definition: TargetOptions.h:57
llvm::TargetOptions::EnableMachineOutliner
unsigned EnableMachineOutliner
Enables the MachineOutliner pass.
Definition: TargetOptions.h:275
llvm::ExceptionHandling::None
@ None
No exception support.
llvm::FPOpFusion::Fast
@ Fast
Definition: TargetOptions.h:37
llvm::TargetOptions::getDenormalMode
DenormalMode getDenormalMode(const fltSemantics &FPType) const
llvm::TargetOptions::NoNaNsFPMath
unsigned NoNaNsFPMath
NoNaNsFPMath - This flag is enabled when the -enable-no-nans-fp-math flag is specified on the command...
Definition: TargetOptions.h:162
llvm::GlobalISelAbortMode::Enable
@ Enable
llvm::BasicBlockSection
BasicBlockSection
Definition: TargetOptions.h:61
llvm::ThreadModel::Model
Model
Definition: TargetOptions.h:55
llvm::TargetOptions::setFPDenormalMode
void setFPDenormalMode(DenormalMode Mode)
Definition: TargetOptions.h:376
llvm::TargetOptions::StackSymbolOrdering
unsigned StackSymbolOrdering
StackSymbolOrdering - When true, this will allow CodeGen to order the local stack symbols (for code s...
Definition: TargetOptions.h:208
llvm::FloatABI::Soft
@ Soft
Definition: TargetOptions.h:30
llvm::GlobalISelAbortMode::Disable
@ Disable
llvm::TargetOptions::UnsafeFPMath
unsigned UnsafeFPMath
UnsafeFPMath - This flag is enabled when the -enable-unsafe-fp-math flag is specified on the command ...
Definition: TargetOptions.h:150
llvm::EABI
EABI
Definition: TargetOptions.h:76
llvm::TargetOptions::FunctionSections
unsigned FunctionSections
Emit functions into separate sections.
Definition: TargetOptions.h:235
llvm::TargetOptions::DisableIntegratedAS
unsigned DisableIntegratedAS
Disable the integrated assembler.
Definition: TargetOptions.h:227
llvm::DebuggerKind::SCE
@ SCE
Tune debug info for SCE targets (e.g. PS4).
true
basic Basic Alias true
Definition: BasicAliasAnalysis.cpp:1815
llvm::DebuggerKind::LLDB
@ LLDB
Tune debug info for lldb.
llvm::TargetOptions::AllowFPOpFusion
FPOpFusion::FPOpFusionMode AllowFPOpFusion
AllowFPOpFusion - This flag is set by the -fp-contract=xxx option.
Definition: TargetOptions.h:355
llvm::TargetOptions::EnableDebugEntryValues
unsigned EnableDebugEntryValues
When set to true, the EnableDebugEntryValues option forces production of debug entry values even if t...
Definition: TargetOptions.h:303
llvm::TargetOptions::ExplicitEmulatedTLS
unsigned ExplicitEmulatedTLS
Whether -emulated-tls or -no-emulated-tls is set.
Definition: TargetOptions.h:266