diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/CodeGen/LiveInterval.h | 4 | ||||
-rw-r--r-- | include/llvm/Support/MathExtras.h | 14 |
2 files changed, 15 insertions, 3 deletions
diff --git a/include/llvm/CodeGen/LiveInterval.h b/include/llvm/CodeGen/LiveInterval.h index 1b30bf5..3a9fef6 100644 --- a/include/llvm/CodeGen/LiveInterval.h +++ b/include/llvm/CodeGen/LiveInterval.h @@ -541,12 +541,12 @@ namespace llvm { /// isSpillable - Can this interval be spilled? bool isSpillable() const { - return weight != HUGE_VALF; + return weight != llvm::huge_valf; } /// markNotSpillable - Mark interval as not spillable void markNotSpillable() { - weight = HUGE_VALF; + weight = llvm::huge_valf; } bool operator<(const LiveInterval& other) const { diff --git a/include/llvm/Support/MathExtras.h b/include/llvm/Support/MathExtras.h index 00c6ad7..17cf475 100644 --- a/include/llvm/Support/MathExtras.h +++ b/include/llvm/Support/MathExtras.h @@ -21,7 +21,8 @@ #include <cstring> #ifdef _MSC_VER -# include <intrin.h> +#include <intrin.h> +#include <limits> #endif namespace llvm { @@ -603,6 +604,17 @@ inline int64_t SignExtend64(uint64_t X, unsigned B) { return int64_t(X << (64 - B)) >> (64 - B); } +#if defined(_MSC_VER) + // Visual Studio defines the HUGE_VAL class of macros using purposeful + // constant arithmetic overflow, which it then warns on when encountered. + const float huge_valf = std::numeric_limits<float>::infinity(); + const double huge_vald = std::numeric_limits<double>::infinity(); + const long double huge_vall = std::numeric_limits<long double>::infinity(); +#else + const float huge_valf = HUGE_VALF; + const double huge_vald = HUGE_VALD; + const long double huge_vall = HUGE_VALL; +#endif } // End llvm namespace #endif |