For PR696:
authorReid Spencer <rspencer@reidspencer.com>
Thu, 19 Jan 2006 08:36:56 +0000 (08:36 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Thu, 19 Jan 2006 08:36:56 +0000 (08:36 +0000)
Don't do floor->floorf conversion if floorf is not available. This checks
the compiler's host, not its target, which is incorrect for cross-compilers
Not sure that's important as we don't build many cross-compilers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25456 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/IPO/SimplifyLibCalls.cpp

index 7da881efa55fb68e631082c82f273f06bd188793..e4239e319877f70bbcc90b8f98c2da79f39ed924 100644 (file)
@@ -25,6 +25,7 @@
 #include "llvm/Pass.h"
 #include "llvm/ADT/hash_map"
 #include "llvm/ADT/Statistic.h"
+#include "llvm/Config/config.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Target/TargetData.h"
 #include "llvm/Transforms/IPO.h"
@@ -317,12 +318,14 @@ public:
     return memcpy_func;
   }
 
+#ifdef HAVE_FLOORF
   Function* get_floorf() {
     if (!floorf_func)
       floorf_func = M->getOrInsertFunction("floorf", Type::FloatTy,
                                            Type::FloatTy, (Type *)0);
     return floorf_func;
   }
+#endif
   
 private:
   /// @brief Reset our cached data for a new Module
@@ -337,7 +340,9 @@ private:
     sqrt_func   = 0;
     strcpy_func = 0;
     strlen_func = 0;
+#ifdef HAVE_FLOORF
     floorf_func = 0;
+#endif
   }
 
 private:
@@ -348,7 +353,9 @@ private:
   Function* sqrt_func;   ///< Cached sqrt function
   Function* strcpy_func; ///< Cached strcpy function
   Function* strlen_func; ///< Cached strlen function
+#ifdef HAVE_FLOORF
   Function* floorf_func; ///< Cached floorf function
+#endif
   Module* M;             ///< Cached Module
   TargetData* TD;        ///< Cached TargetData
 };
@@ -1906,6 +1913,7 @@ public:
 } FFSLLOptimizer;
 
 
+#ifdef HAVE_FLOORF
 /// This LibCallOptimization will simplify calls to the "floor" library
 /// function.
 /// @brief Simplify the floor library function.
@@ -1937,6 +1945,7 @@ struct FloorOptimization : public LibCallOptimization {
     return false; // opt failed
   }
 } FloorOptimizer;
+#endif