diff --git a/llvm/lib/Transforms/Utils/Local.cpp b/llvm/lib/Transforms/Utils/Local.cpp index 677a7dcc1ca6..41454ae0cb1e 100644 --- a/llvm/lib/Transforms/Utils/Local.cpp +++ b/llvm/lib/Transforms/Utils/Local.cpp @@ -12,6 +12,7 @@ // //===----------------------------------------------------------------------===// +#include "Support/MathExtras.h" #include "llvm/Transforms/Utils/Local.h" #include "llvm/Constants.h" #include "llvm/Instructions.h" @@ -20,18 +21,6 @@ #include using namespace llvm; -#if 0 -#if defined(__POWERPC__) && defined(__APPLE_CC__) -// FIXME: Currently it seems that isnan didn't make its way into the Apple -// C++ headers, although it IS in the C headers (which confuses autoconf -// in a big way). This is a quick fix to get things compiling, until one of -// us has time to write a more complicated autoconf test. -extern "C" int isnan (double d); -namespace std { int isnan (double d) { return ::isnan (d); } } -#endif - -#endif - //===----------------------------------------------------------------------===// // Local constant propagation... // @@ -303,11 +292,9 @@ Constant *llvm::ConstantFoldCall(Function *F, if (ConstantFP *Op2 = dyn_cast(Operands[1])) { double Op1V = Op1->getValue(), Op2V = Op2->getValue(); -#if 0 if (Name == "llvm.isunordered") - return ConstantBool::get(std::isnan(Op1V) | std::isnan(Op2V)); + return ConstantBool::get(IsNAN(Op1V) || IsNAN(Op2V)); else -#endif if (Name == "pow") { errno = 0; double V = pow(Op1V, Op2V);