From 2ad8245566a3c92d4559727a877d57ecf5d078c8 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Wed, 26 Nov 2008 05:50:31 +0000 Subject: [PATCH] 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60092 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/CodeGen/LiveInterval.h | 2 +- lib/CodeGen/LiveIntervalAnalysis.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/llvm/CodeGen/LiveInterval.h b/include/llvm/CodeGen/LiveInterval.h index 024ca92af9f..7ef24897d4b 100644 --- a/include/llvm/CodeGen/LiveInterval.h +++ b/include/llvm/CodeGen/LiveInterval.h @@ -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 diff --git a/lib/CodeGen/LiveIntervalAnalysis.cpp b/lib/CodeGen/LiveIntervalAnalysis.cpp index 2a979e19eb5..1de31b9da2c 100644 --- a/lib/CodeGen/LiveIntervalAnalysis.cpp +++ b/lib/CodeGen/LiveIntervalAnalysis.cpp @@ -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; -- 2.34.1