From d813091cdecf3b50eba9c2fe09b6a9a47df73c25 Mon Sep 17 00:00:00 2001 From: Owen Anderson Date: Mon, 16 Jun 2008 06:18:41 +0000 Subject: Assign indices to empty basic blocks. This will be necessary for StrongPHIElimination in the near future. llvm-svn: 52300 --- llvm/lib/CodeGen/LiveIntervalAnalysis.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'llvm/lib/CodeGen') diff --git a/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp b/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp index 37e3895b3c4..5bb3cfa4596 100644 --- a/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp +++ b/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp @@ -100,11 +100,14 @@ void LiveIntervals::computeNumbering() { i2miMap_.push_back(I); MIIndex += InstrSlots::NUM; } - + + if (StartIdx == MIIndex) { + // Empty MBB + MIIndex += InstrSlots::NUM; + i2miMap_.push_back(0); + } // Set the MBB2IdxMap entry for this MBB. - MBB2IdxMap[MBB->getNumber()] = (StartIdx == MIIndex) - ? std::make_pair(StartIdx, StartIdx) // Empty MBB - : std::make_pair(StartIdx, MIIndex - 1); + MBB2IdxMap[MBB->getNumber()] = std::make_pair(StartIdx, MIIndex - 1); Idx2MBBMap.push_back(std::make_pair(StartIdx, MBB)); } std::sort(Idx2MBBMap.begin(), Idx2MBBMap.end(), Idx2MBBCompare()); @@ -661,6 +664,8 @@ void LiveIntervals::computeIntervals() { MIIndex += InstrSlots::NUM; } + + if (MBB->begin() == miEnd) MIIndex += InstrSlots::NUM; // Empty MBB } } -- cgit v1.2.3