TargetOptions.h revision c9ab2f39ceadefa4ac8c0c922c55a76c0d637a6e
1//===-- llvm/Target/TargetOptions.h - Target Options ------------*- C++ -*-===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file was developed by the LLVM research group and is distributed under
6// the University of Illinois Open Source License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10// This file defines command line option flags that are shared across various
11// targets.
12//
13//===----------------------------------------------------------------------===//
14
15#ifndef LLVM_TARGET_TARGETOPTIONS_H
16#define LLVM_TARGET_TARGETOPTIONS_H
17
18namespace llvm {
19  /// PrintMachineCode - This flag is enabled when the -print-machineinstrs
20  /// option is specified on the command line, and should enable debugging
21  /// output from the code generator.
22  extern bool PrintMachineCode;
23
24  /// NoFramePointerElim - This flag is enabled when the -disable-fp-elim is
25  /// specified on the command line.  If the target supports the frame pointer
26  /// elimination optimization, this option should disable it.
27  extern bool NoFramePointerElim;
28
29  /// NoExcessFPPrecision - This flag is enabled when the
30  /// -disable-excess-fp-precision flag is specified on the command line.  When
31  /// this flag is off (the default), the code generator is allowed to produce
32  /// results that are "more precise" than IEEE allows.  This includes use of
33  /// FMA-like operations and use of the X86 FP registers without rounding all
34  /// over the place.
35  extern bool NoExcessFPPrecision;
36
37  /// UnsafeFPMath - This flag is enabled when the
38  /// -enable-unsafe-fp-math flag is specified on the command line.  When
39  /// this flag is off (the default), the code generator is not allowed to
40  /// produce results that are "less precise" than IEEE allows.  This includes
41  /// use of X86 instructions like FSIN and FCOS instead of libcalls.
42  /// UnsafeFPMath implies FiniteOnlyFPMath.
43  extern bool UnsafeFPMath;
44
45  /// FiniteOnlyFPMath - This returns true when the -enable-finite-only-fp-math
46  /// option is specified on the command line. If this returns false (default),
47  /// the code generator is not allowed to assume that FP arithmetic arguments
48  /// and results are never NaNs or +-Infs.
49  extern bool FiniteOnlyFPMathOption;
50  extern bool FiniteOnlyFPMath();
51
52  /// UseSoftFloat - This flag is enabled when the -soft-float flag is specified
53  /// on the command line.  When this flag is on, the code generator will
54  /// generate libcalls to the software floating point library instead of
55  /// target FP instructions.
56  extern bool UseSoftFloat;
57} // End llvm namespace
58
59#endif
60