Added option -enable-finite-only-fp-math. When on, the codegen can assume that

FP arithmetic arguments and results are never NaNs or +=Infs. This includes
ignoring parity flag (PF) when checking for FP equality.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28432 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Evan Cheng 2006-05-23 06:39:12 +00:00
parent 4b442b528a
commit 95942d76f4
2 changed files with 13 additions and 0 deletions

View File

@ -40,6 +40,13 @@ namespace llvm {
/// produce results that are "less precise" than IEEE allows. This includes
/// use of X86 instructions like FSIN and FCOS instead of libcalls.
extern bool UnsafeFPMath;
/// FiniteOnlyFPMath - This is enabled when the -enable-finite-only-fp-math
/// flag is specified on the command line. When this flag is off (default),
/// the code generator is not allowed to assume that FP arithmetic arguments
/// and results are never NaNs or +-Infs. This includes ignoring parity flag
/// (PF) when checking for FP equality.
extern bool FiniteOnlyFPMath;
} // End llvm namespace
#endif

View File

@ -26,6 +26,7 @@ namespace llvm {
bool NoFramePointerElim;
bool NoExcessFPPrecision;
bool UnsafeFPMath;
bool FiniteOnlyFPMath;
Reloc::Model RelocationModel;
};
namespace {
@ -48,6 +49,11 @@ namespace {
cl::desc("Enable optimizations that may decrease FP precision"),
cl::location(UnsafeFPMath),
cl::init(false));
cl::opt<bool, true>
EnableFiniteOnltFPMath("enable-finite-only-fp-math",
cl::desc("Enable optimizations that assumes non- NaNs / +-Infs"),
cl::location(FiniteOnlyFPMath),
cl::init(false));
cl::opt<llvm::Reloc::Model, true>
DefRelocationModel(
"relocation-model",