Refix MSVC9 and upper_bound. It actually needs a fully symmetric comparator.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114469 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jakob Stoklund Olesen 2010-09-21 20:16:12 +00:00
parent 701cd62297
commit 7c72707216

View File

@ -30,20 +30,18 @@
#include <algorithm>
using namespace llvm;
// CompEnd - Compare LiveRange end to Pos.
// CompEnd - Compare LiveRange ends.
namespace {
struct CompEnd {
bool operator()(SlotIndex Pos, const LiveRange &LR) const {
return Pos < LR.end;
}
bool operator()(const LiveRange &LR, SlotIndex Pos) const {
return LR.end < Pos;
bool operator()(const LiveRange &A, const LiveRange &B) const {
return A.end < B.end;
}
};
}
LiveInterval::iterator LiveInterval::find(SlotIndex Pos) {
return std::upper_bound(begin(), end(), Pos, CompEnd());
return std::upper_bound(begin(), end(), LiveRange(SlotIndex(), Pos, 0),
CompEnd());
}
/// killedInRange - Return true if the interval has kills in [Start,End).