mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-22 11:55:12 +00:00
Fix LiveInterval::overlaps so it doesn't claim touching intervals overlap.
Also, one binary search is enough. llvm-svn: 108261
This commit is contained in:
parent
2ac1d3a2c9
commit
3726c5f775
@ -161,16 +161,8 @@ bool LiveInterval::overlapsFrom(const LiveInterval& other,
|
||||
/// by [Start, End).
|
||||
bool LiveInterval::overlaps(SlotIndex Start, SlotIndex End) const {
|
||||
assert(Start < End && "Invalid range");
|
||||
const_iterator I = begin();
|
||||
const_iterator E = end();
|
||||
const_iterator si = std::upper_bound(I, E, Start);
|
||||
const_iterator ei = std::upper_bound(I, E, End);
|
||||
if (si != ei)
|
||||
return true;
|
||||
if (si == I)
|
||||
return false;
|
||||
--si;
|
||||
return si->contains(Start);
|
||||
const_iterator I = std::lower_bound(begin(), end(), End);
|
||||
return I != begin() && (--I)->end > Start;
|
||||
}
|
||||
|
||||
/// extendIntervalEndTo - This method is used when we want to extend the range
|
||||
|
Loading…
x
Reference in New Issue
Block a user