forked from OSchip/llvm-project
Add <imp-def> of super-register when lowering SUBREG_TO_REG.
Patch by Tyler Nowicki! llvm-svn: 160888
This commit is contained in:
parent
bad134ffea
commit
bc65e8f94e
|
@ -131,13 +131,16 @@ bool ExpandPostRA::LowerSubregToReg(MachineInstr *MI) {
|
|||
} else {
|
||||
TII->copyPhysReg(*MBB, MI, MI->getDebugLoc(), DstSubReg, InsReg,
|
||||
MI->getOperand(2).isKill());
|
||||
|
||||
// Implicitly define DstReg for subsequent uses.
|
||||
MachineBasicBlock::iterator CopyMI = MI;
|
||||
--CopyMI;
|
||||
CopyMI->addRegisterDefined(DstReg);
|
||||
|
||||
// Transfer the kill/dead flags, if needed.
|
||||
if (MI->getOperand(0).isDead())
|
||||
TransferDeadFlag(MI, DstSubReg, TRI);
|
||||
DEBUG({
|
||||
MachineBasicBlock::iterator dMI = MI;
|
||||
dbgs() << "subreg: " << *(--dMI);
|
||||
});
|
||||
DEBUG(dbgs() << "subreg: " << *CopyMI);
|
||||
}
|
||||
|
||||
DEBUG(dbgs() << '\n');
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: llc < %s -mcpu=generic -regalloc=fast -optimize-regalloc=0 -verify-machineinstrs -mtriple=x86_64-apple-darwin10
|
||||
; RUN: llc < %s -regalloc=fast -optimize-regalloc=0 -verify-machineinstrs -mtriple=x86_64-apple-darwin10
|
||||
; <rdar://problem/7755473>
|
||||
; PR12821
|
||||
|
||||
|
|
Loading…
Reference in New Issue