mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-26 05:25:47 +00:00
Replacing HUGE_VALF with llvm::huge_valf in order to work around a warning triggered in MSVC 12.
Patch reviewed by Reid Kleckner and Jim Grosbach. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194533 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -541,12 +541,12 @@ namespace llvm {
|
|||||||
|
|
||||||
/// isSpillable - Can this interval be spilled?
|
/// isSpillable - Can this interval be spilled?
|
||||||
bool isSpillable() const {
|
bool isSpillable() const {
|
||||||
return weight != HUGE_VALF;
|
return weight != llvm::huge_valf;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// markNotSpillable - Mark interval as not spillable
|
/// markNotSpillable - Mark interval as not spillable
|
||||||
void markNotSpillable() {
|
void markNotSpillable() {
|
||||||
weight = HUGE_VALF;
|
weight = llvm::huge_valf;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool operator<(const LiveInterval& other) const {
|
bool operator<(const LiveInterval& other) const {
|
||||||
|
@@ -21,7 +21,8 @@
|
|||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
# include <intrin.h>
|
#include <intrin.h>
|
||||||
|
#include <limits>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
namespace llvm {
|
namespace llvm {
|
||||||
@@ -603,6 +604,17 @@ inline int64_t SignExtend64(uint64_t X, unsigned B) {
|
|||||||
return int64_t(X << (64 - B)) >> (64 - 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
|
} // End llvm namespace
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -170,7 +170,8 @@ void LiveIntervals::dumpInstrs() const {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
LiveInterval* LiveIntervals::createInterval(unsigned reg) {
|
LiveInterval* LiveIntervals::createInterval(unsigned reg) {
|
||||||
float Weight = TargetRegisterInfo::isPhysicalRegister(reg) ? HUGE_VALF : 0.0F;
|
float Weight = TargetRegisterInfo::isPhysicalRegister(reg) ?
|
||||||
|
llvm::huge_valf : 0.0F;
|
||||||
return new LiveInterval(reg, Weight);
|
return new LiveInterval(reg, Weight);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1477,7 +1477,7 @@ void RAGreedy::calcGapWeights(unsigned PhysReg,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
for (; Gap != NumGaps; ++Gap) {
|
for (; Gap != NumGaps; ++Gap) {
|
||||||
GapWeight[Gap] = HUGE_VALF;
|
GapWeight[Gap] = llvm::huge_valf;
|
||||||
if (Uses[Gap+1].getBaseIndex() >= I->end)
|
if (Uses[Gap+1].getBaseIndex() >= I->end)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1583,7 +1583,7 @@ unsigned RAGreedy::tryLocalSplit(LiveInterval &VirtReg, AllocationOrder &Order,
|
|||||||
// Remove any gaps with regmask clobbers.
|
// Remove any gaps with regmask clobbers.
|
||||||
if (Matrix->checkRegMaskInterference(VirtReg, PhysReg))
|
if (Matrix->checkRegMaskInterference(VirtReg, PhysReg))
|
||||||
for (unsigned i = 0, e = RegMaskGaps.size(); i != e; ++i)
|
for (unsigned i = 0, e = RegMaskGaps.size(); i != e; ++i)
|
||||||
GapWeight[RegMaskGaps[i]] = HUGE_VALF;
|
GapWeight[RegMaskGaps[i]] = llvm::huge_valf;
|
||||||
|
|
||||||
// Try to find the best sequence of gaps to close.
|
// Try to find the best sequence of gaps to close.
|
||||||
// The new spill weight must be larger than any gap interference.
|
// The new spill weight must be larger than any gap interference.
|
||||||
@@ -1618,7 +1618,7 @@ unsigned RAGreedy::tryLocalSplit(LiveInterval &VirtReg, AllocationOrder &Order,
|
|||||||
// Legally, without causing looping?
|
// Legally, without causing looping?
|
||||||
bool Legal = !ProgressRequired || NewGaps < NumGaps;
|
bool Legal = !ProgressRequired || NewGaps < NumGaps;
|
||||||
|
|
||||||
if (Legal && MaxGap < HUGE_VALF) {
|
if (Legal && MaxGap < llvm::huge_valf) {
|
||||||
// Estimate the new spill weight. Each instruction reads or writes the
|
// Estimate the new spill weight. Each instruction reads or writes the
|
||||||
// register. Conservatively assume there are no read-modify-write
|
// register. Conservatively assume there are no read-modify-write
|
||||||
// instructions.
|
// instructions.
|
||||||
|
@@ -77,7 +77,7 @@ protected:
|
|||||||
|
|
||||||
DEBUG(dbgs() << "Spilling everywhere " << *li << "\n");
|
DEBUG(dbgs() << "Spilling everywhere " << *li << "\n");
|
||||||
|
|
||||||
assert(li->weight != HUGE_VALF &&
|
assert(li->weight != llvm::huge_valf &&
|
||||||
"Attempting to spill already spilled value.");
|
"Attempting to spill already spilled value.");
|
||||||
|
|
||||||
assert(!TargetRegisterInfo::isStackSlot(li->reg) &&
|
assert(!TargetRegisterInfo::isStackSlot(li->reg) &&
|
||||||
|
Reference in New Issue
Block a user