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