diff options
author | Chris Lattner <sabre@nondot.org> | 2004-05-06 16:25:59 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2004-05-06 16:25:59 +0000 |
commit | a19eedeb7aafc418ef2f017b8215ceafa7f1a76c (patch) | |
tree | 95ff089d2981180d1d4c8504a2e675cd1a99effa /lib/CodeGen | |
parent | ad5c296792e8db7afed68023909ea42f9ddcb454 (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
Diffstat (limited to 'lib/CodeGen')
-rw-r--r-- | lib/CodeGen/LiveIntervalAnalysis.cpp | 10 | ||||
-rw-r--r-- | lib/CodeGen/RegAllocLinearScan.cpp | 2 |
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_); |