aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2004-05-06 16:25:59 +0000
committerChris Lattner <sabre@nondot.org>2004-05-06 16:25:59 +0000
commita19eedeb7aafc418ef2f017b8215ceafa7f1a76c (patch)
tree95ff089d2981180d1d4c8504a2e675cd1a99effa
parentad5c296792e8db7afed68023909ea42f9ddcb454 (diff)
numeric_limits::infinity() apparently does not work on all systems. As a
workaround, use the C HUGE_VAL macro instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13377 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/CodeGen/LiveIntervalAnalysis.cpp10
-rw-r--r--lib/CodeGen/RegAllocLinearScan.cpp2
2 files changed, 5 insertions, 7 deletions
diff --git a/lib/CodeGen/LiveIntervalAnalysis.cpp b/lib/CodeGen/LiveIntervalAnalysis.cpp
index 3adad78060..039982a5dd 100644
--- a/lib/CodeGen/LiveIntervalAnalysis.cpp
+++ b/lib/CodeGen/LiveIntervalAnalysis.cpp
@@ -196,7 +196,7 @@ void LiveIntervals::updateSpilledInterval(Interval& li,
VirtRegMap& vrm,
int slot)
{
- assert(li.weight != std::numeric_limits<float>::infinity() &&
+ assert(li.weight != HUGE_VAL &&
"attempt to spill already spilled interval!");
Interval::Ranges oldRanges;
swap(oldRanges, li.ranges);
@@ -253,7 +253,7 @@ void LiveIntervals::updateSpilledInterval(Interval& li,
}
}
// the new spill weight is now infinity as it cannot be spilled again
- li.weight = std::numeric_limits<float>::infinity();
+ li.weight = HUGE_VAL;
DEBUG(std::cerr << '\n');
DEBUG(std::cerr << "\t\t\t\tupdated interval: " << li << '\n');
}
@@ -556,15 +556,13 @@ LiveIntervals::Interval& LiveIntervals::getOrCreateInterval(unsigned reg)
LiveIntervals::Interval::Interval(unsigned r)
: reg(r),
- weight((MRegisterInfo::isPhysicalRegister(r) ?
- std::numeric_limits<float>::infinity() : 0.0F))
+ weight((MRegisterInfo::isPhysicalRegister(r) ? HUGE_VAL : 0.0F))
{
-
}
bool LiveIntervals::Interval::spilled() const
{
- return (weight == std::numeric_limits<float>::infinity() &&
+ return (weight == HUGE_VAL &&
MRegisterInfo::isVirtualRegister(reg));
}
diff --git a/lib/CodeGen/RegAllocLinearScan.cpp b/lib/CodeGen/RegAllocLinearScan.cpp
index 7759eec638..dcfb597f95 100644
--- a/lib/CodeGen/RegAllocLinearScan.cpp
+++ b/lib/CodeGen/RegAllocLinearScan.cpp
@@ -351,7 +351,7 @@ void RA::assignRegOrStackSlotAtInterval(IntervalPtrs::value_type cur)
DEBUG(std::cerr << "\tassigning stack slot at interval "<< *cur << ":\n");
- float minWeight = std::numeric_limits<float>::infinity();
+ float minWeight = HUGE_VAL;
unsigned minReg = 0;
const TargetRegisterClass* rc = mf_->getSSARegMap()->getRegClass(cur->reg);
for (TargetRegisterClass::iterator i = rc->allocation_order_begin(*mf_);