annotate llvm/include/llvm/Target/TargetOptions.h @ 152:e8a9b4f4d755

pull from 146
author anatofuz
date Wed, 11 Mar 2020 18:29:16 +0900
parents 1d019706d866
children f935e5e0dbe7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 //===-- llvm/Target/TargetOptions.h - Target Options ------------*- C++ -*-===//
anatofuz
parents:
diff changeset
2 //
anatofuz
parents:
diff changeset
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
anatofuz
parents:
diff changeset
4 // See https://llvm.org/LICENSE.txt for license information.
anatofuz
parents:
diff changeset
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
anatofuz
parents:
diff changeset
6 //
anatofuz
parents:
diff changeset
7 //===----------------------------------------------------------------------===//
anatofuz
parents:
diff changeset
8 //
anatofuz
parents:
diff changeset
9 // This file defines command line option flags that are shared across various
anatofuz
parents:
diff changeset
10 // targets.
anatofuz
parents:
diff changeset
11 //
anatofuz
parents:
diff changeset
12 //===----------------------------------------------------------------------===//
anatofuz
parents:
diff changeset
13
anatofuz
parents:
diff changeset
14 #ifndef LLVM_TARGET_TARGETOPTIONS_H
anatofuz
parents:
diff changeset
15 #define LLVM_TARGET_TARGETOPTIONS_H
anatofuz
parents:
diff changeset
16
anatofuz
parents:
diff changeset
17 #include "llvm/MC/MCTargetOptions.h"
anatofuz
parents:
diff changeset
18
anatofuz
parents:
diff changeset
19 namespace llvm {
anatofuz
parents:
diff changeset
20 class MachineFunction;
anatofuz
parents:
diff changeset
21 class Module;
anatofuz
parents:
diff changeset
22
anatofuz
parents:
diff changeset
23 namespace FloatABI {
anatofuz
parents:
diff changeset
24 enum ABIType {
anatofuz
parents:
diff changeset
25 Default, // Target-specific (either soft or hard depending on triple, etc).
anatofuz
parents:
diff changeset
26 Soft, // Soft float.
anatofuz
parents:
diff changeset
27 Hard // Hard float.
anatofuz
parents:
diff changeset
28 };
anatofuz
parents:
diff changeset
29 }
anatofuz
parents:
diff changeset
30
anatofuz
parents:
diff changeset
31 namespace FPOpFusion {
anatofuz
parents:
diff changeset
32 enum FPOpFusionMode {
anatofuz
parents:
diff changeset
33 Fast, // Enable fusion of FP ops wherever it's profitable.
anatofuz
parents:
diff changeset
34 Standard, // Only allow fusion of 'blessed' ops (currently just fmuladd).
anatofuz
parents:
diff changeset
35 Strict // Never fuse FP-ops.
anatofuz
parents:
diff changeset
36 };
anatofuz
parents:
diff changeset
37 }
anatofuz
parents:
diff changeset
38
anatofuz
parents:
diff changeset
39 namespace JumpTable {
anatofuz
parents:
diff changeset
40 enum JumpTableType {
anatofuz
parents:
diff changeset
41 Single, // Use a single table for all indirect jumptable calls.
anatofuz
parents:
diff changeset
42 Arity, // Use one table per number of function parameters.
anatofuz
parents:
diff changeset
43 Simplified, // Use one table per function type, with types projected
anatofuz
parents:
diff changeset
44 // into 4 types: pointer to non-function, struct,
anatofuz
parents:
diff changeset
45 // primitive, and function pointer.
anatofuz
parents:
diff changeset
46 Full // Use one table per unique function type
anatofuz
parents:
diff changeset
47 };
anatofuz
parents:
diff changeset
48 }
anatofuz
parents:
diff changeset
49
anatofuz
parents:
diff changeset
50 namespace ThreadModel {
anatofuz
parents:
diff changeset
51 enum Model {
anatofuz
parents:
diff changeset
52 POSIX, // POSIX Threads
anatofuz
parents:
diff changeset
53 Single // Single Threaded Environment
anatofuz
parents:
diff changeset
54 };
anatofuz
parents:
diff changeset
55 }
anatofuz
parents:
diff changeset
56
anatofuz
parents:
diff changeset
57 namespace FPDenormal {
anatofuz
parents:
diff changeset
58 enum DenormalMode {
anatofuz
parents:
diff changeset
59 IEEE, // IEEE 754 denormal numbers
anatofuz
parents:
diff changeset
60 PreserveSign, // the sign of a flushed-to-zero number is preserved in
anatofuz
parents:
diff changeset
61 // the sign of 0
anatofuz
parents:
diff changeset
62 PositiveZero // denormals are flushed to positive zero
anatofuz
parents:
diff changeset
63 };
anatofuz
parents:
diff changeset
64 }
anatofuz
parents:
diff changeset
65
anatofuz
parents:
diff changeset
66 enum class EABI {
anatofuz
parents:
diff changeset
67 Unknown,
anatofuz
parents:
diff changeset
68 Default, // Default means not specified
anatofuz
parents:
diff changeset
69 EABI4, // Target-specific (either 4, 5 or gnu depending on triple).
anatofuz
parents:
diff changeset
70 EABI5,
anatofuz
parents:
diff changeset
71 GNU
anatofuz
parents:
diff changeset
72 };
anatofuz
parents:
diff changeset
73
anatofuz
parents:
diff changeset
74 /// Identify a debugger for "tuning" the debug info.
anatofuz
parents:
diff changeset
75 ///
anatofuz
parents:
diff changeset
76 /// The "debugger tuning" concept allows us to present a more intuitive
anatofuz
parents:
diff changeset
77 /// interface that unpacks into different sets of defaults for the various
anatofuz
parents:
diff changeset
78 /// individual feature-flag settings, that suit the preferences of the
anatofuz
parents:
diff changeset
79 /// various debuggers. However, it's worth remembering that debuggers are
anatofuz
parents:
diff changeset
80 /// not the only consumers of debug info, and some variations in DWARF might
anatofuz
parents:
diff changeset
81 /// better be treated as target/platform issues. Fundamentally,
anatofuz
parents:
diff changeset
82 /// o if the feature is useful (or not) to a particular debugger, regardless
anatofuz
parents:
diff changeset
83 /// of the target, that's a tuning decision;
anatofuz
parents:
diff changeset
84 /// o if the feature is useful (or not) on a particular platform, regardless
anatofuz
parents:
diff changeset
85 /// of the debugger, that's a target decision.
anatofuz
parents:
diff changeset
86 /// It's not impossible to see both factors in some specific case.
anatofuz
parents:
diff changeset
87 ///
anatofuz
parents:
diff changeset
88 /// The "tuning" should be used to set defaults for individual feature flags
anatofuz
parents:
diff changeset
89 /// in DwarfDebug; if a given feature has a more specific command-line option,
anatofuz
parents:
diff changeset
90 /// that option should take precedence over the tuning.
anatofuz
parents:
diff changeset
91 enum class DebuggerKind {
anatofuz
parents:
diff changeset
92 Default, // No specific tuning requested.
anatofuz
parents:
diff changeset
93 GDB, // Tune debug info for gdb.
anatofuz
parents:
diff changeset
94 LLDB, // Tune debug info for lldb.
anatofuz
parents:
diff changeset
95 SCE // Tune debug info for SCE targets (e.g. PS4).
anatofuz
parents:
diff changeset
96 };
anatofuz
parents:
diff changeset
97
anatofuz
parents:
diff changeset
98 /// Enable abort calls when global instruction selection fails to lower/select
anatofuz
parents:
diff changeset
99 /// an instruction.
anatofuz
parents:
diff changeset
100 enum class GlobalISelAbortMode {
anatofuz
parents:
diff changeset
101 Disable, // Disable the abort.
anatofuz
parents:
diff changeset
102 Enable, // Enable the abort.
anatofuz
parents:
diff changeset
103 DisableWithDiag // Disable the abort but emit a diagnostic on failure.
anatofuz
parents:
diff changeset
104 };
anatofuz
parents:
diff changeset
105
anatofuz
parents:
diff changeset
106 class TargetOptions {
anatofuz
parents:
diff changeset
107 public:
anatofuz
parents:
diff changeset
108 TargetOptions()
anatofuz
parents:
diff changeset
109 : PrintMachineCode(false), UnsafeFPMath(false), NoInfsFPMath(false),
anatofuz
parents:
diff changeset
110 NoNaNsFPMath(false), NoTrappingFPMath(true),
anatofuz
parents:
diff changeset
111 NoSignedZerosFPMath(false),
anatofuz
parents:
diff changeset
112 HonorSignDependentRoundingFPMathOption(false), NoZerosInBSS(false),
anatofuz
parents:
diff changeset
113 GuaranteedTailCallOpt(false), StackSymbolOrdering(true),
anatofuz
parents:
diff changeset
114 EnableFastISel(false), EnableGlobalISel(false), UseInitArray(false),
anatofuz
parents:
diff changeset
115 DisableIntegratedAS(false), RelaxELFRelocations(false),
anatofuz
parents:
diff changeset
116 FunctionSections(false), DataSections(false),
anatofuz
parents:
diff changeset
117 UniqueSectionNames(true), TrapUnreachable(false),
anatofuz
parents:
diff changeset
118 NoTrapAfterNoreturn(false), TLSSize(0), EmulatedTLS(false),
anatofuz
parents:
diff changeset
119 ExplicitEmulatedTLS(false), EnableIPRA(false),
anatofuz
parents:
diff changeset
120 EmitStackSizeSection(false), EnableMachineOutliner(false),
anatofuz
parents:
diff changeset
121 SupportsDefaultOutlining(false), EmitAddrsig(false),
anatofuz
parents:
diff changeset
122 EnableDebugEntryValues(false), ForceDwarfFrameSection(false) {}
anatofuz
parents:
diff changeset
123
anatofuz
parents:
diff changeset
124 /// PrintMachineCode - This flag is enabled when the -print-machineinstrs
anatofuz
parents:
diff changeset
125 /// option is specified on the command line, and should enable debugging
anatofuz
parents:
diff changeset
126 /// output from the code generator.
anatofuz
parents:
diff changeset
127 unsigned PrintMachineCode : 1;
anatofuz
parents:
diff changeset
128
anatofuz
parents:
diff changeset
129 /// DisableFramePointerElim - This returns true if frame pointer elimination
anatofuz
parents:
diff changeset
130 /// optimization should be disabled for the given machine function.
anatofuz
parents:
diff changeset
131 bool DisableFramePointerElim(const MachineFunction &MF) const;
anatofuz
parents:
diff changeset
132
anatofuz
parents:
diff changeset
133 /// UnsafeFPMath - This flag is enabled when the
anatofuz
parents:
diff changeset
134 /// -enable-unsafe-fp-math flag is specified on the command line. When
anatofuz
parents:
diff changeset
135 /// this flag is off (the default), the code generator is not allowed to
anatofuz
parents:
diff changeset
136 /// produce results that are "less precise" than IEEE allows. This includes
anatofuz
parents:
diff changeset
137 /// use of X86 instructions like FSIN and FCOS instead of libcalls.
anatofuz
parents:
diff changeset
138 unsigned UnsafeFPMath : 1;
anatofuz
parents:
diff changeset
139
anatofuz
parents:
diff changeset
140 /// NoInfsFPMath - This flag is enabled when the
anatofuz
parents:
diff changeset
141 /// -enable-no-infs-fp-math flag is specified on the command line. When
anatofuz
parents:
diff changeset
142 /// this flag is off (the default), the code generator is not allowed to
anatofuz
parents:
diff changeset
143 /// assume the FP arithmetic arguments and results are never +-Infs.
anatofuz
parents:
diff changeset
144 unsigned NoInfsFPMath : 1;
anatofuz
parents:
diff changeset
145
anatofuz
parents:
diff changeset
146 /// NoNaNsFPMath - This flag is enabled when the
anatofuz
parents:
diff changeset
147 /// -enable-no-nans-fp-math flag is specified on the command line. When
anatofuz
parents:
diff changeset
148 /// this flag is off (the default), the code generator is not allowed to
anatofuz
parents:
diff changeset
149 /// assume the FP arithmetic arguments and results are never NaNs.
anatofuz
parents:
diff changeset
150 unsigned NoNaNsFPMath : 1;
anatofuz
parents:
diff changeset
151
anatofuz
parents:
diff changeset
152 /// NoTrappingFPMath - This flag is enabled when the
anatofuz
parents:
diff changeset
153 /// -enable-no-trapping-fp-math is specified on the command line. This
anatofuz
parents:
diff changeset
154 /// specifies that there are no trap handlers to handle exceptions.
anatofuz
parents:
diff changeset
155 unsigned NoTrappingFPMath : 1;
anatofuz
parents:
diff changeset
156
anatofuz
parents:
diff changeset
157 /// NoSignedZerosFPMath - This flag is enabled when the
anatofuz
parents:
diff changeset
158 /// -enable-no-signed-zeros-fp-math is specified on the command line. This
anatofuz
parents:
diff changeset
159 /// specifies that optimizations are allowed to treat the sign of a zero
anatofuz
parents:
diff changeset
160 /// argument or result as insignificant.
anatofuz
parents:
diff changeset
161 unsigned NoSignedZerosFPMath : 1;
anatofuz
parents:
diff changeset
162
anatofuz
parents:
diff changeset
163 /// HonorSignDependentRoundingFPMath - This returns true when the
anatofuz
parents:
diff changeset
164 /// -enable-sign-dependent-rounding-fp-math is specified. If this returns
anatofuz
parents:
diff changeset
165 /// false (the default), the code generator is allowed to assume that the
anatofuz
parents:
diff changeset
166 /// rounding behavior is the default (round-to-zero for all floating point
anatofuz
parents:
diff changeset
167 /// to integer conversions, and round-to-nearest for all other arithmetic
anatofuz
parents:
diff changeset
168 /// truncations). If this is enabled (set to true), the code generator must
anatofuz
parents:
diff changeset
169 /// assume that the rounding mode may dynamically change.
anatofuz
parents:
diff changeset
170 unsigned HonorSignDependentRoundingFPMathOption : 1;
anatofuz
parents:
diff changeset
171 bool HonorSignDependentRoundingFPMath() const;
anatofuz
parents:
diff changeset
172
anatofuz
parents:
diff changeset
173 /// NoZerosInBSS - By default some codegens place zero-initialized data to
anatofuz
parents:
diff changeset
174 /// .bss section. This flag disables such behaviour (necessary, e.g. for
anatofuz
parents:
diff changeset
175 /// crt*.o compiling).
anatofuz
parents:
diff changeset
176 unsigned NoZerosInBSS : 1;
anatofuz
parents:
diff changeset
177
anatofuz
parents:
diff changeset
178 /// GuaranteedTailCallOpt - This flag is enabled when -tailcallopt is
anatofuz
parents:
diff changeset
179 /// specified on the commandline. When the flag is on, participating targets
anatofuz
parents:
diff changeset
180 /// will perform tail call optimization on all calls which use the fastcc
anatofuz
parents:
diff changeset
181 /// calling convention and which satisfy certain target-independent
anatofuz
parents:
diff changeset
182 /// criteria (being at the end of a function, having the same return type
anatofuz
parents:
diff changeset
183 /// as their parent function, etc.), using an alternate ABI if necessary.
anatofuz
parents:
diff changeset
184 unsigned GuaranteedTailCallOpt : 1;
anatofuz
parents:
diff changeset
185
anatofuz
parents:
diff changeset
186 /// StackAlignmentOverride - Override default stack alignment for target.
anatofuz
parents:
diff changeset
187 unsigned StackAlignmentOverride = 0;
anatofuz
parents:
diff changeset
188
anatofuz
parents:
diff changeset
189 /// StackSymbolOrdering - When true, this will allow CodeGen to order
anatofuz
parents:
diff changeset
190 /// the local stack symbols (for code size, code locality, or any other
anatofuz
parents:
diff changeset
191 /// heuristics). When false, the local symbols are left in whatever order
anatofuz
parents:
diff changeset
192 /// they were generated. Default is true.
anatofuz
parents:
diff changeset
193 unsigned StackSymbolOrdering : 1;
anatofuz
parents:
diff changeset
194
anatofuz
parents:
diff changeset
195 /// EnableFastISel - This flag enables fast-path instruction selection
anatofuz
parents:
diff changeset
196 /// which trades away generated code quality in favor of reducing
anatofuz
parents:
diff changeset
197 /// compile time.
anatofuz
parents:
diff changeset
198 unsigned EnableFastISel : 1;
anatofuz
parents:
diff changeset
199
anatofuz
parents:
diff changeset
200 /// EnableGlobalISel - This flag enables global instruction selection.
anatofuz
parents:
diff changeset
201 unsigned EnableGlobalISel : 1;
anatofuz
parents:
diff changeset
202
anatofuz
parents:
diff changeset
203 /// EnableGlobalISelAbort - Control abort behaviour when global instruction
anatofuz
parents:
diff changeset
204 /// selection fails to lower/select an instruction.
anatofuz
parents:
diff changeset
205 GlobalISelAbortMode GlobalISelAbort = GlobalISelAbortMode::Enable;
anatofuz
parents:
diff changeset
206
anatofuz
parents:
diff changeset
207 /// UseInitArray - Use .init_array instead of .ctors for static
anatofuz
parents:
diff changeset
208 /// constructors.
anatofuz
parents:
diff changeset
209 unsigned UseInitArray : 1;
anatofuz
parents:
diff changeset
210
anatofuz
parents:
diff changeset
211 /// Disable the integrated assembler.
anatofuz
parents:
diff changeset
212 unsigned DisableIntegratedAS : 1;
anatofuz
parents:
diff changeset
213
anatofuz
parents:
diff changeset
214 /// Compress DWARF debug sections.
anatofuz
parents:
diff changeset
215 DebugCompressionType CompressDebugSections = DebugCompressionType::None;
anatofuz
parents:
diff changeset
216
anatofuz
parents:
diff changeset
217 unsigned RelaxELFRelocations : 1;
anatofuz
parents:
diff changeset
218
anatofuz
parents:
diff changeset
219 /// Emit functions into separate sections.
anatofuz
parents:
diff changeset
220 unsigned FunctionSections : 1;
anatofuz
parents:
diff changeset
221
anatofuz
parents:
diff changeset
222 /// Emit data into separate sections.
anatofuz
parents:
diff changeset
223 unsigned DataSections : 1;
anatofuz
parents:
diff changeset
224
anatofuz
parents:
diff changeset
225 unsigned UniqueSectionNames : 1;
anatofuz
parents:
diff changeset
226
anatofuz
parents:
diff changeset
227 /// Emit target-specific trap instruction for 'unreachable' IR instructions.
anatofuz
parents:
diff changeset
228 unsigned TrapUnreachable : 1;
anatofuz
parents:
diff changeset
229
anatofuz
parents:
diff changeset
230 /// Do not emit a trap instruction for 'unreachable' IR instructions behind
anatofuz
parents:
diff changeset
231 /// noreturn calls, even if TrapUnreachable is true.
anatofuz
parents:
diff changeset
232 unsigned NoTrapAfterNoreturn : 1;
anatofuz
parents:
diff changeset
233
anatofuz
parents:
diff changeset
234 /// Bit size of immediate TLS offsets (0 == use the default).
anatofuz
parents:
diff changeset
235 unsigned TLSSize : 8;
anatofuz
parents:
diff changeset
236
anatofuz
parents:
diff changeset
237 /// EmulatedTLS - This flag enables emulated TLS model, using emutls
anatofuz
parents:
diff changeset
238 /// function in the runtime library..
anatofuz
parents:
diff changeset
239 unsigned EmulatedTLS : 1;
anatofuz
parents:
diff changeset
240
anatofuz
parents:
diff changeset
241 /// Whether -emulated-tls or -no-emulated-tls is set.
anatofuz
parents:
diff changeset
242 unsigned ExplicitEmulatedTLS : 1;
anatofuz
parents:
diff changeset
243
anatofuz
parents:
diff changeset
244 /// This flag enables InterProcedural Register Allocation (IPRA).
anatofuz
parents:
diff changeset
245 unsigned EnableIPRA : 1;
anatofuz
parents:
diff changeset
246
anatofuz
parents:
diff changeset
247 /// Emit section containing metadata on function stack sizes.
anatofuz
parents:
diff changeset
248 unsigned EmitStackSizeSection : 1;
anatofuz
parents:
diff changeset
249
anatofuz
parents:
diff changeset
250 /// Enables the MachineOutliner pass.
anatofuz
parents:
diff changeset
251 unsigned EnableMachineOutliner : 1;
anatofuz
parents:
diff changeset
252
anatofuz
parents:
diff changeset
253 /// Set if the target supports default outlining behaviour.
anatofuz
parents:
diff changeset
254 unsigned SupportsDefaultOutlining : 1;
anatofuz
parents:
diff changeset
255
anatofuz
parents:
diff changeset
256 /// Emit address-significance table.
anatofuz
parents:
diff changeset
257 unsigned EmitAddrsig : 1;
anatofuz
parents:
diff changeset
258
anatofuz
parents:
diff changeset
259 /// Emit debug info about parameter's entry values.
anatofuz
parents:
diff changeset
260 unsigned EnableDebugEntryValues : 1;
anatofuz
parents:
diff changeset
261
anatofuz
parents:
diff changeset
262 /// Emit DWARF debug frame section.
anatofuz
parents:
diff changeset
263 unsigned ForceDwarfFrameSection : 1;
anatofuz
parents:
diff changeset
264
anatofuz
parents:
diff changeset
265 /// FloatABIType - This setting is set by -float-abi=xxx option is specfied
anatofuz
parents:
diff changeset
266 /// on the command line. This setting may either be Default, Soft, or Hard.
anatofuz
parents:
diff changeset
267 /// Default selects the target's default behavior. Soft selects the ABI for
anatofuz
parents:
diff changeset
268 /// software floating point, but does not indicate that FP hardware may not
anatofuz
parents:
diff changeset
269 /// be used. Such a combination is unfortunately popular (e.g.
anatofuz
parents:
diff changeset
270 /// arm-apple-darwin). Hard presumes that the normal FP ABI is used.
anatofuz
parents:
diff changeset
271 FloatABI::ABIType FloatABIType = FloatABI::Default;
anatofuz
parents:
diff changeset
272
anatofuz
parents:
diff changeset
273 /// AllowFPOpFusion - This flag is set by the -fuse-fp-ops=xxx option.
anatofuz
parents:
diff changeset
274 /// This controls the creation of fused FP ops that store intermediate
anatofuz
parents:
diff changeset
275 /// results in higher precision than IEEE allows (E.g. FMAs).
anatofuz
parents:
diff changeset
276 ///
anatofuz
parents:
diff changeset
277 /// Fast mode - allows formation of fused FP ops whenever they're
anatofuz
parents:
diff changeset
278 /// profitable.
anatofuz
parents:
diff changeset
279 /// Standard mode - allow fusion only for 'blessed' FP ops. At present the
anatofuz
parents:
diff changeset
280 /// only blessed op is the fmuladd intrinsic. In the future more blessed ops
anatofuz
parents:
diff changeset
281 /// may be added.
anatofuz
parents:
diff changeset
282 /// Strict mode - allow fusion only if/when it can be proven that the excess
anatofuz
parents:
diff changeset
283 /// precision won't effect the result.
anatofuz
parents:
diff changeset
284 ///
anatofuz
parents:
diff changeset
285 /// Note: This option only controls formation of fused ops by the
anatofuz
parents:
diff changeset
286 /// optimizers. Fused operations that are explicitly specified (e.g. FMA
anatofuz
parents:
diff changeset
287 /// via the llvm.fma.* intrinsic) will always be honored, regardless of
anatofuz
parents:
diff changeset
288 /// the value of this option.
anatofuz
parents:
diff changeset
289 FPOpFusion::FPOpFusionMode AllowFPOpFusion = FPOpFusion::Standard;
152
e8a9b4f4d755 pull from 146
anatofuz
parents: 150
diff changeset
290 #ifndef noCbC
e8a9b4f4d755 pull from 146
anatofuz
parents: 150
diff changeset
291 unsigned HasCodeSegment : 1;
e8a9b4f4d755 pull from 146
anatofuz
parents: 150
diff changeset
292 #endif
150
anatofuz
parents:
diff changeset
293
anatofuz
parents:
diff changeset
294 /// ThreadModel - This flag specifies the type of threading model to assume
anatofuz
parents:
diff changeset
295 /// for things like atomics
anatofuz
parents:
diff changeset
296 ThreadModel::Model ThreadModel = ThreadModel::POSIX;
anatofuz
parents:
diff changeset
297
anatofuz
parents:
diff changeset
298 /// EABIVersion - This flag specifies the EABI version
anatofuz
parents:
diff changeset
299 EABI EABIVersion = EABI::Default;
anatofuz
parents:
diff changeset
300
anatofuz
parents:
diff changeset
301 /// Which debugger to tune for.
anatofuz
parents:
diff changeset
302 DebuggerKind DebuggerTuning = DebuggerKind::Default;
anatofuz
parents:
diff changeset
303
anatofuz
parents:
diff changeset
304 /// FPDenormalMode - This flags specificies which denormal numbers the code
anatofuz
parents:
diff changeset
305 /// is permitted to require.
anatofuz
parents:
diff changeset
306 FPDenormal::DenormalMode FPDenormalMode = FPDenormal::IEEE;
anatofuz
parents:
diff changeset
307
anatofuz
parents:
diff changeset
308 /// What exception model to use
anatofuz
parents:
diff changeset
309 ExceptionHandling ExceptionModel = ExceptionHandling::None;
anatofuz
parents:
diff changeset
310
anatofuz
parents:
diff changeset
311 /// Machine level options.
anatofuz
parents:
diff changeset
312 MCTargetOptions MCOptions;
anatofuz
parents:
diff changeset
313 };
anatofuz
parents:
diff changeset
314
anatofuz
parents:
diff changeset
315 } // End llvm namespace
anatofuz
parents:
diff changeset
316
anatofuz
parents:
diff changeset
317 #endif