diff options
author | Chris Lattner <sabre@nondot.org> | 2005-01-15 06:00:32 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2005-01-15 06:00:32 +0000 |
commit | 45554a61f2814e1d445e272076fd7187e74a25c0 (patch) | |
tree | 140ad07f9cf4a7fef6ca3c633ad62cd6b688d12c | |
parent | e9ef81dd2f9f51ac80bc000cca67051020a1e227 (diff) |
Add a new target-independent code generator flag.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19567 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/Target/TargetOptions.h | 9 | ||||
-rw-r--r-- | lib/Target/TargetMachine.cpp | 6 |
2 files changed, 15 insertions, 0 deletions
diff --git a/include/llvm/Target/TargetOptions.h b/include/llvm/Target/TargetOptions.h index b3668e2a1b..887e404f74 100644 --- a/include/llvm/Target/TargetOptions.h +++ b/include/llvm/Target/TargetOptions.h @@ -25,6 +25,15 @@ namespace llvm { /// specified on the command line. If the target supports the frame pointer /// elimination optimization, this option should disable it. extern bool NoFramePointerElim; + + /// NoExcessFPPrecision - This flag is enabled when the + /// -disable-excess-fp-precision flag is specified on the command line. When + /// this flag is off (the default), the code generator is allowed to produce + /// results that are "more precise" than IEEE allows. This includes use of + /// FMA-like operations and use of the X86 FP registers without rounding all + /// over the place. + extern bool NoExcessFPPrecision; + } // End llvm namespace #endif diff --git a/lib/Target/TargetMachine.cpp b/lib/Target/TargetMachine.cpp index 973165f186..22df91faeb 100644 --- a/lib/Target/TargetMachine.cpp +++ b/lib/Target/TargetMachine.cpp @@ -24,6 +24,7 @@ using namespace llvm; namespace llvm { bool PrintMachineCode; bool NoFramePointerElim; + bool NoExcessFPPrecision; }; namespace { cl::opt<bool, true> PrintCode("print-machineinstrs", @@ -35,6 +36,11 @@ namespace { cl::desc("Disable frame pointer elimination optimization"), cl::location(NoFramePointerElim), cl::init(false)); + cl::opt<bool, true> + DisableExcessPrecision("disable-excess-fp-precision", + cl::desc("Disable optimizations that may increase FP precision"), + cl::location(NoExcessFPPrecision), + cl::init(false)); }; //--------------------------------------------------------------------------- |