forked from OSchip/llvm-project
LiveRanges are represented as half-open ranges. Fix the findLiveInMBBs code
and the LiveInterval.h top-level comment and accordingly. This fixes blocks having spurious live-in registers in boundary cases. llvm-svn: 60092
This commit is contained in:
parent
21148402d6
commit
3336b1f06b
|
@ -9,7 +9,7 @@
|
|||
//
|
||||
// This file implements the LiveRange and LiveInterval classes. Given some
|
||||
// numbering of each the machine instructions an interval [i, j) is said to be a
|
||||
// live interval for register v if there is no instruction with number j' > j
|
||||
// live interval for register v if there is no instruction with number j' >= j
|
||||
// such that v is live at j' and there is no instruction with number i' < i such
|
||||
// that v is live at i'. In this implementation intervals can have holes,
|
||||
// i.e. an interval might look like [1,20), [50,65), [1000,1001). Each
|
||||
|
|
|
@ -750,7 +750,7 @@ bool LiveIntervals::findLiveInMBBs(unsigned Start, unsigned End,
|
|||
|
||||
bool ResVal = false;
|
||||
while (I != Idx2MBBMap.end()) {
|
||||
if (I->first > End)
|
||||
if (I->first >= End)
|
||||
break;
|
||||
MBBs.push_back(I->second);
|
||||
ResVal = true;
|
||||
|
|
Loading…
Reference in New Issue