From 292da949f6c87d6499425d64d37d7c5870ec57ad Mon Sep 17 00:00:00 2001 From: Evan Cheng Date: Wed, 27 Jun 2007 18:47:28 +0000 Subject: [PATCH] If a livein is not used in the block. It's live through. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37764 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/LiveIntervalAnalysis.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/lib/CodeGen/LiveIntervalAnalysis.cpp b/lib/CodeGen/LiveIntervalAnalysis.cpp index ebab85fb480..369493ff94e 100644 --- a/lib/CodeGen/LiveIntervalAnalysis.cpp +++ b/lib/CodeGen/LiveIntervalAnalysis.cpp @@ -625,13 +625,15 @@ void LiveIntervals::handleLiveInRegister(MachineBasicBlock *MBB, exit: // Live-in register might not be used at all. if (end == MIIdx) { - DOUT << " dead"; - if (isAlias) + if (isAlias) { + DOUT << " dead"; end = getDefIndex(MIIdx) + 1; + } else { + DOUT << " live through"; + end = baseIndex; + } } - assert(start < end && "did not find end of interval?"); - LiveRange LR(start, end, interval.getNextValue(~0U, 0)); DOUT << " +" << LR << '\n'; interval.addRange(LR); @@ -662,7 +664,8 @@ void LiveIntervals::computeIntervals() { // Multiple live-ins can alias the same register. for (const unsigned* AS = mri_->getSubRegisters(*LI); *AS; ++AS) if (!hasInterval(*AS)) - handleLiveInRegister(MBB, MIIndex, getOrCreateInterval(*AS), true); + handleLiveInRegister(MBB, MIIndex, getOrCreateInterval(*AS), + true); } }