Use new IsNAN() wrapper.
authorBrian Gaeke <gaeke@uiuc.edu>
Wed, 23 Jun 2004 00:25:35 +0000 (00:25 +0000)
committerBrian Gaeke <gaeke@uiuc.edu>
Wed, 23 Jun 2004 00:25:35 +0000 (00:25 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14340 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Utils/Local.cpp

index 677a7dcc1ca68fe5203fbf5190c893823f1dfbc4..41454ae0cb1e79d7673bb1761c862ba022f70580 100644 (file)
@@ -12,6 +12,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include "Support/MathExtras.h"
 #include "llvm/Transforms/Utils/Local.h"
 #include "llvm/Constants.h"
 #include "llvm/Instructions.h"
 #include <cmath>
 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<ConstantFP>(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);