From: Jakob Stoklund Olesen Date: Tue, 15 May 2012 22:18:49 +0000 (+0000) Subject: We never call adjustCopiesBackFrom() for partial copies. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=141aea9cff95b8df8ca89fb757dc44ee37a3d8df;p=oota-llvm.git We never call adjustCopiesBackFrom() for partial copies. There is no need to look at an always null SrcIdx. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156866 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/RegisterCoalescer.cpp b/lib/CodeGen/RegisterCoalescer.cpp index 8795c0d7151..00393bbe8af 100644 --- a/lib/CodeGen/RegisterCoalescer.cpp +++ b/lib/CodeGen/RegisterCoalescer.cpp @@ -408,6 +408,8 @@ void RegisterCoalescer::markAsJoined(MachineInstr *CopyMI) { /// bool RegisterCoalescer::adjustCopiesBackFrom(const CoalescerPair &CP, MachineInstr *CopyMI) { + assert(!CP.isPartial() && "This doesn't work for partial copies."); + // Bail if there is no dst interval - can happen when merging physical subreg // operations. if (!LIS->hasInterval(CP.getDstReg())) @@ -529,7 +531,7 @@ bool RegisterCoalescer::adjustCopiesBackFrom(const CoalescerPair &CP, // Rewrite the copy. If the copy instruction was killing the destination // register before the merge, find the last use and trim the live range. That // will also add the isKill marker. - CopyMI->substituteRegister(IntA.reg, IntB.reg, CP.getSrcIdx(), *TRI); + CopyMI->substituteRegister(IntA.reg, IntB.reg, 0, *TRI); if (ALR->end == CopyIdx) LIS->shrinkToUses(&IntA);