#define LLVM_TARGET_TARGETOPTIONS_H
namespace llvm {
+ // Possible float ABI settings. Used with FloatABIType in TargetOptions.h.
+ namespace FloatABI {
+ enum ABIType {
+ Default, // Target-specific (either soft of hard depending on triple, etc).
+ Soft, // Soft float.
+ Hard // Hard float.
+ };
+ }
+
/// PrintMachineCode - This flag is enabled when the -print-machineinstrs
/// option is specified on the command line, and should enable debugging
/// output from the code generator.
/// target FP instructions.
extern bool UseSoftFloat;
- /// NoImplicitFloat - This flag is enabled when the -no-implicit-float flag is
- /// specified on the command line. When this flag is on, the code generator
- /// won't generate any implicit floating point instructions. I.e., no XMM or
- /// x87 or vectorized memcpy/memmove instructions. This is for X86 only.
- extern bool NoImplicitFloat;
+ /// FloatABIType - This setting is set by -float-abi=xxx option is specfied
+ /// on the command line. This setting may either be Default, Soft, or Hard.
+ /// Default selects the target's default behavior. Soft selects the ABI for
+ /// UseSoftFloat, but does not inidcate that FP hardware may not be used.
+ /// Such a combination is unfortunately popular (e.g. arm-apple-darwin).
+ /// Hard presumes that the normal FP ABI is used.
+ extern FloatABI::ABIType FloatABIType;
/// NoZerosInBSS - By default some codegens place zero-initialized data to
/// .bss section. This flag disables such behaviour (necessary, e.g. for
/// generated.
extern bool DisableJumpTables;
- /// FastISel - This flag enables fast-path instruction selection
+ /// EnableFastISel - This flag enables fast-path instruction selection
/// which trades away generated code quality in favor of reducing
/// compile time.
extern bool EnableFastISel;
/// wth earlier copy coalescing.
extern bool StrongPHIElim;
- /// DisableRedZone - This flag disables use of the "Red Zone" on
- /// targets which would otherwise have one.
- extern bool DisableRedZone;
-
} // End llvm namespace
#endif