LLVM  14.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 
113  /// Indicates when and how the Swift async frame pointer bit should be set.
115  /// Determine whether to set the bit statically or dynamically based
116  /// on the deployment target.
118  /// Always set the bit.
119  Always,
120  /// Never set the bit.
121  Never,
122  };
123 
125  public:
146  FPDenormalMode(DenormalMode::IEEE, DenormalMode::IEEE) {}
147 
148  /// DisableFramePointerElim - This returns true if frame pointer elimination
149  /// optimization should be disabled for the given machine function.
150  bool DisableFramePointerElim(const MachineFunction &MF) const;
151 
152  /// If greater than 0, override the default value of
153  /// MCAsmInfo::BinutilsVersion.
154  std::pair<int, int> BinutilsVersion{0, 0};
155 
156  /// UnsafeFPMath - This flag is enabled when the
157  /// -enable-unsafe-fp-math flag is specified on the command line. When
158  /// this flag is off (the default), the code generator is not allowed to
159  /// produce results that are "less precise" than IEEE allows. This includes
160  /// use of X86 instructions like FSIN and FCOS instead of libcalls.
161  unsigned UnsafeFPMath : 1;
162 
163  /// NoInfsFPMath - This flag is enabled when the
164  /// -enable-no-infs-fp-math flag is specified on the command line. When
165  /// this flag is off (the default), the code generator is not allowed to
166  /// assume the FP arithmetic arguments and results are never +-Infs.
167  unsigned NoInfsFPMath : 1;
168 
169  /// NoNaNsFPMath - This flag is enabled when the
170  /// -enable-no-nans-fp-math flag is specified on the command line. When
171  /// this flag is off (the default), the code generator is not allowed to
172  /// assume the FP arithmetic arguments and results are never NaNs.
173  unsigned NoNaNsFPMath : 1;
174 
175  /// NoTrappingFPMath - This flag is enabled when the
176  /// -enable-no-trapping-fp-math is specified on the command line. This
177  /// specifies that there are no trap handlers to handle exceptions.
178  unsigned NoTrappingFPMath : 1;
179 
180  /// NoSignedZerosFPMath - This flag is enabled when the
181  /// -enable-no-signed-zeros-fp-math is specified on the command line. This
182  /// specifies that optimizations are allowed to treat the sign of a zero
183  /// argument or result as insignificant.
184  unsigned NoSignedZerosFPMath : 1;
185 
186  /// ApproxFuncFPMath - This flag is enabled when the
187  /// -enable-approx-func-fp-math is specified on the command line. This
188  /// specifies that optimizations are allowed to substitute math functions
189  /// with approximate calculations
190  unsigned ApproxFuncFPMath : 1;
191 
192  /// EnableAIXExtendedAltivecABI - This flag returns true when -vec-extabi is
193  /// specified. The code generator is then able to use both volatile and
194  /// nonvolitle vector registers. When false, the code generator only uses
195  /// volatile vector registers which is the default setting on AIX.
197 
198  /// HonorSignDependentRoundingFPMath - This returns true when the
199  /// -enable-sign-dependent-rounding-fp-math is specified. If this returns
200  /// false (the default), the code generator is allowed to assume that the
201  /// rounding behavior is the default (round-to-zero for all floating point
202  /// to integer conversions, and round-to-nearest for all other arithmetic
203  /// truncations). If this is enabled (set to true), the code generator must
204  /// assume that the rounding mode may dynamically change.
207 
208  /// NoZerosInBSS - By default some codegens place zero-initialized data to
209  /// .bss section. This flag disables such behaviour (necessary, e.g. for
210  /// crt*.o compiling).
211  unsigned NoZerosInBSS : 1;
212 
213  /// GuaranteedTailCallOpt - This flag is enabled when -tailcallopt is
214  /// specified on the commandline. When the flag is on, participating targets
215  /// will perform tail call optimization on all calls which use the fastcc
216  /// calling convention and which satisfy certain target-independent
217  /// criteria (being at the end of a function, having the same return type
218  /// as their parent function, etc.), using an alternate ABI if necessary.
219  unsigned GuaranteedTailCallOpt : 1;
220 
221  /// StackSymbolOrdering - When true, this will allow CodeGen to order
222  /// the local stack symbols (for code size, code locality, or any other
223  /// heuristics). When false, the local symbols are left in whatever order
224  /// they were generated. Default is true.
225  unsigned StackSymbolOrdering : 1;
226 
227  /// EnableFastISel - This flag enables fast-path instruction selection
228  /// which trades away generated code quality in favor of reducing
229  /// compile time.
230  unsigned EnableFastISel : 1;
231 
232  /// EnableGlobalISel - This flag enables global instruction selection.
233  unsigned EnableGlobalISel : 1;
234 
235  /// EnableGlobalISelAbort - Control abort behaviour when global instruction
236  /// selection fails to lower/select an instruction.
238 
239  /// Control when and how the Swift async frame pointer bit should
240  /// be set.
243 
244  /// UseInitArray - Use .init_array instead of .ctors for static
245  /// constructors.
246  unsigned UseInitArray : 1;
247 
248  /// Disable the integrated assembler.
249  unsigned DisableIntegratedAS : 1;
250 
251  /// Compress DWARF debug sections.
253 
254  unsigned RelaxELFRelocations : 1;
255 
256  /// Emit functions into separate sections.
257  unsigned FunctionSections : 1;
258 
259  /// Emit data into separate sections.
260  unsigned DataSections : 1;
261 
262  /// Do not emit visibility attribute for xcoff.
263  unsigned IgnoreXCOFFVisibility : 1;
264 
265  /// Emit XCOFF traceback table.
266  unsigned XCOFFTracebackTable : 1;
267 
268  unsigned UniqueSectionNames : 1;
269 
270  /// Use unique names for basic block sections.
272 
273  /// Emit target-specific trap instruction for 'unreachable' IR instructions.
274  unsigned TrapUnreachable : 1;
275 
276  /// Do not emit a trap instruction for 'unreachable' IR instructions behind
277  /// noreturn calls, even if TrapUnreachable is true.
278  unsigned NoTrapAfterNoreturn : 1;
279 
280  /// Bit size of immediate TLS offsets (0 == use the default).
281  unsigned TLSSize : 8;
282 
283  /// EmulatedTLS - This flag enables emulated TLS model, using emutls
284  /// function in the runtime library..
285  unsigned EmulatedTLS : 1;
286 
287  /// Whether -emulated-tls or -no-emulated-tls is set.
288  unsigned ExplicitEmulatedTLS : 1;
289 
290  /// This flag enables InterProcedural Register Allocation (IPRA).
291  unsigned EnableIPRA : 1;
292 
293  /// Emit section containing metadata on function stack sizes.
294  unsigned EmitStackSizeSection : 1;
295 
296  /// Enables the MachineOutliner pass.
297  unsigned EnableMachineOutliner : 1;
298 
299  /// Enables the MachineFunctionSplitter pass.
301 
302  /// Set if the target supports default outlining behaviour.
304 
305  /// Emit address-significance table.
306  unsigned EmitAddrsig : 1;
307 
308  /// Emit basic blocks into separate sections.
310 
311  /// Memory Buffer that contains information on sampled basic blocks and used
312  /// to selectively generate basic block sections.
313  std::shared_ptr<MemoryBuffer> BBSectionsFuncListBuf;
314 
315  /// The flag enables call site info production. It is used only for debug
316  /// info, and it is restricted only to optimized code. This can be used for
317  /// something else, so that should be controlled in the frontend.
318  unsigned EmitCallSiteInfo : 1;
319  /// Set if the target supports the debug entry values by default.
321  /// When set to true, the EnableDebugEntryValues option forces production
322  /// of debug entry values even if the target does not officially support
323  /// it. Useful for testing purposes only. This flag should never be checked
324  /// directly, always use \ref ShouldEmitDebugEntryValues instead.
326  /// NOTE: There are targets that still do not support the debug entry values
327  /// production.
328  bool ShouldEmitDebugEntryValues() const;
329 
330  // When set to true, use experimental new debug variable location tracking,
331  // which seeks to follow the values of variables rather than their location,
332  // post isel.
334 
335  /// Emit DWARF debug frame section.
337 
338  /// Emit XRay Function Index section
339  unsigned XRayOmitFunctionIndex : 1;
340 
341  /// When set to true, don't use DWARF extensions in later DWARF versions.
342  /// By default, it is set to false.
343  unsigned DebugStrictDwarf : 1;
344 
345  /// Name of the stack usage file (i.e., .su file) if user passes
346  /// -fstack-usage. If empty, it can be implied that -fstack-usage is not
347  /// passed on the command line.
348  std::string StackUsageOutput;
349 
350  /// If greater than 0, override TargetLoweringBase::PrefLoopAlignment.
351  unsigned LoopAlignment = 0;
352 
353  /// FloatABIType - This setting is set by -float-abi=xxx option is specfied
354  /// on the command line. This setting may either be Default, Soft, or Hard.
355  /// Default selects the target's default behavior. Soft selects the ABI for
356  /// software floating point, but does not indicate that FP hardware may not
357  /// be used. Such a combination is unfortunately popular (e.g.
358  /// arm-apple-darwin). Hard presumes that the normal FP ABI is used.
360 
361  /// AllowFPOpFusion - This flag is set by the -fp-contract=xxx option.
362  /// This controls the creation of fused FP ops that store intermediate
363  /// results in higher precision than IEEE allows (E.g. FMAs).
364  ///
365  /// Fast mode - allows formation of fused FP ops whenever they're
366  /// profitable.
367  /// Standard mode - allow fusion only for 'blessed' FP ops. At present the
368  /// only blessed op is the fmuladd intrinsic. In the future more blessed ops
369  /// may be added.
370  /// Strict mode - allow fusion only if/when it can be proven that the excess
371  /// precision won't effect the result.
372  ///
373  /// Note: This option only controls formation of fused ops by the
374  /// optimizers. Fused operations that are explicitly specified (e.g. FMA
375  /// via the llvm.fma.* intrinsic) will always be honored, regardless of
376  /// the value of this option.
378 
379  /// ThreadModel - This flag specifies the type of threading model to assume
380  /// for things like atomics
382 
383  /// EABIVersion - This flag specifies the EABI version
385 
386  /// Which debugger to tune for.
388 
389  private:
390  /// Flushing mode to assume in default FP environment.
391  DenormalMode FPDenormalMode;
392 
393  /// Flushing mode to assume in default FP environment, for float/vector of
394  /// float.
395  DenormalMode FP32DenormalMode;
396 
397  public:
399  FPDenormalMode = Mode;
400  }
401 
403  FP32DenormalMode = Mode;
404  }
405 
407  return FPDenormalMode;
408  }
409 
411  return FP32DenormalMode;
412  }
413 
414  DenormalMode getDenormalMode(const fltSemantics &FPType) const;
415 
416  /// What exception model to use
418 
419  /// Machine level options.
421  };
422 
423 } // End llvm namespace
424 
425 #endif
llvm::TargetOptions::EmitStackSizeSection
unsigned EmitStackSizeSection
Emit section containing metadata on function stack sizes.
Definition: TargetOptions.h:294
llvm::TargetOptions::HonorSignDependentRoundingFPMathOption
unsigned HonorSignDependentRoundingFPMathOption
HonorSignDependentRoundingFPMath - This returns true when the -enable-sign-dependent-rounding-fp-math...
Definition: TargetOptions.h:205
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:348
llvm::JumpTable::Arity
@ Arity
Definition: TargetOptions.h:46
llvm
This file implements support for optimizing divisions by a constant.
Definition: AllocatorList.h:23
llvm::TargetOptions::GuaranteedTailCallOpt
unsigned GuaranteedTailCallOpt
GuaranteedTailCallOpt - This flag is enabled when -tailcallopt is specified on the commandline.
Definition: TargetOptions.h:219
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:211
llvm::DebuggerKind
DebuggerKind
Identify a debugger for "tuning" the debug info.
Definition: TargetOptions.h:97
llvm::TargetOptions
Definition: TargetOptions.h:124
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:196
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:313
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:384
llvm::TargetOptions::BBSections
BasicBlockSection BBSections
Emit basic blocks into separate sections.
Definition: TargetOptions.h:309
llvm::TargetOptions::setFP32DenormalMode
void setFP32DenormalMode(DenormalMode Mode)
Definition: TargetOptions.h:402
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:184
llvm::TargetOptions::TrapUnreachable
unsigned TrapUnreachable
Emit target-specific trap instruction for 'unreachable' IR instructions.
Definition: TargetOptions.h:274
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:252
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:300
llvm::BasicBlockSection::List
@ List
llvm::BasicBlockSection::None
@ None
llvm::SwiftAsyncFramePointerMode::Never
@ Never
Never set the bit.
llvm::TargetOptions::ApproxFuncFPMath
unsigned ApproxFuncFPMath
ApproxFuncFPMath - This flag is enabled when the -enable-approx-func-fp-math is specified on the comm...
Definition: TargetOptions.h:190
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:167
llvm::DebugCompressionType::None
@ None
No compression.
llvm::TargetOptions::UniqueSectionNames
unsigned UniqueSectionNames
Definition: TargetOptions.h:268
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:246
llvm::TargetOptions::EnableIPRA
unsigned EnableIPRA
This flag enables InterProcedural Register Allocation (IPRA).
Definition: TargetOptions.h:291
llvm::TargetOptions::ForceDwarfFrameSection
unsigned ForceDwarfFrameSection
Emit DWARF debug frame section.
Definition: TargetOptions.h:336
llvm::TargetOptions::SupportsDefaultOutlining
unsigned SupportsDefaultOutlining
Set if the target supports default outlining behaviour.
Definition: TargetOptions.h:303
llvm::JumpTable::Simplified
@ Simplified
Definition: TargetOptions.h:47
false
Definition: StackSlotColoring.cpp:142
llvm::TargetOptions::MCOptions
MCTargetOptions MCOptions
Machine level options.
Definition: TargetOptions.h:420
llvm::FloatABI::Default
@ Default
Definition: TargetOptions.h:29
llvm::TargetOptions::ExceptionModel
ExceptionHandling ExceptionModel
What exception model to use.
Definition: TargetOptions.h:417
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:285
llvm::TargetOptions::getRawFPDenormalMode
DenormalMode getRawFPDenormalMode() const
Definition: TargetOptions.h:406
llvm::BasicBlockSection::All
@ All
llvm::TargetOptions::RelaxELFRelocations
unsigned RelaxELFRelocations
Definition: TargetOptions.h:254
llvm::TargetOptions::LoopAlignment
unsigned LoopAlignment
If greater than 0, override TargetLoweringBase::PrefLoopAlignment.
Definition: TargetOptions.h:351
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:359
llvm::TargetOptions::ThreadModel
ThreadModel::Model ThreadModel
ThreadModel - This flag specifies the type of threading model to assume for things like atomics.
Definition: TargetOptions.h:381
llvm::EABI::EABI4
@ EABI4
llvm::TargetOptions::ValueTrackingVariableLocations
unsigned ValueTrackingVariableLocations
Definition: TargetOptions.h:333
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:178
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:233
llvm::EABI::Unknown
@ Unknown
llvm::TargetOptions::getRawFP32DenormalMode
DenormalMode getRawFP32DenormalMode() const
Definition: TargetOptions.h:410
llvm::TargetOptions::SupportsDebugEntryValues
unsigned SupportsDebugEntryValues
Set if the target supports the debug entry values by default.
Definition: TargetOptions.h:320
llvm::BasicBlockSection::Preset
@ Preset
llvm::TargetOptions::SwiftAsyncFramePointer
SwiftAsyncFramePointerMode SwiftAsyncFramePointer
Control when and how the Swift async frame pointer bit should be set.
Definition: TargetOptions.h:241
llvm::TargetOptions::EmitAddrsig
unsigned EmitAddrsig
Emit address-significance table.
Definition: TargetOptions.h:306
llvm::TargetOptions::NoTrapAfterNoreturn
unsigned NoTrapAfterNoreturn
Do not emit a trap instruction for 'unreachable' IR instructions behind noreturn calls,...
Definition: TargetOptions.h:278
llvm::DenormalMode
Represent subnormal handling kind for floating point instruction inputs and outputs.
Definition: FloatingPointMode.h:67
llvm::TargetOptions::TargetOptions
TargetOptions()
Definition: TargetOptions.h:126
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:339
llvm::TargetOptions::TLSSize
unsigned TLSSize
Bit size of immediate TLS offsets (0 == use the default).
Definition: TargetOptions.h:281
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:230
llvm::MachineFunction
Definition: MachineFunction.h:234
llvm::TargetOptions::IgnoreXCOFFVisibility
unsigned IgnoreXCOFFVisibility
Do not emit visibility attribute for xcoff.
Definition: TargetOptions.h:263
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:154
llvm::SwiftAsyncFramePointerMode::DeploymentBased
@ DeploymentBased
Determine whether to set the bit statically or dynamically based on the deployment target.
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:343
llvm::TargetOptions::XCOFFTracebackTable
unsigned XCOFFTracebackTable
Emit XCOFF traceback table.
Definition: TargetOptions.h:266
llvm::EABI::EABI5
@ EABI5
llvm::TargetOptions::EmitCallSiteInfo
unsigned EmitCallSiteInfo
The flag enables call site info production.
Definition: TargetOptions.h:318
llvm::TargetOptions::DebuggerTuning
DebuggerKind DebuggerTuning
Which debugger to tune for.
Definition: TargetOptions.h:387
llvm::TargetOptions::UniqueBasicBlockSectionNames
unsigned UniqueBasicBlockSectionNames
Use unique names for basic block sections.
Definition: TargetOptions.h:271
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:237
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:260
llvm::ThreadModel::Single
@ Single
Definition: TargetOptions.h:57
llvm::TargetOptions::EnableMachineOutliner
unsigned EnableMachineOutliner
Enables the MachineOutliner pass.
Definition: TargetOptions.h:297
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:173
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:398
llvm::TargetOptions::StackSymbolOrdering
unsigned StackSymbolOrdering
StackSymbolOrdering - When true, this will allow CodeGen to order the local stack symbols (for code s...
Definition: TargetOptions.h:225
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:161
llvm::SwiftAsyncFramePointerMode
SwiftAsyncFramePointerMode
Indicates when and how the Swift async frame pointer bit should be set.
Definition: TargetOptions.h:114
llvm::EABI
EABI
Definition: TargetOptions.h:76
llvm::TargetOptions::FunctionSections
unsigned FunctionSections
Emit functions into separate sections.
Definition: TargetOptions.h:257
llvm::TargetOptions::DisableIntegratedAS
unsigned DisableIntegratedAS
Disable the integrated assembler.
Definition: TargetOptions.h:249
llvm::DebuggerKind::SCE
@ SCE
Tune debug info for SCE targets (e.g. PS4).
true
basic Basic Alias true
Definition: BasicAliasAnalysis.cpp:1903
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:377
llvm::TargetOptions::EnableDebugEntryValues
unsigned EnableDebugEntryValues
When set to true, the EnableDebugEntryValues option forces production of debug entry values even if t...
Definition: TargetOptions.h:325
llvm::TargetOptions::ExplicitEmulatedTLS
unsigned ExplicitEmulatedTLS
Whether -emulated-tls or -no-emulated-tls is set.
Definition: TargetOptions.h:288
llvm::SwiftAsyncFramePointerMode::Always
@ Always
Always set the bit.