Revert "Remove references to INSERT_SUBREG after de-SSA" r107725.

Buildbot breakage.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107744 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jakob Stoklund Olesen
2010-07-07 00:32:25 +00:00
parent 78dfbc380d
commit 4b76ffc1ff
7 changed files with 136 additions and 9 deletions
+19 -5
View File
@@ -1359,11 +1359,25 @@ TwoAddressInstructionPass::CoalesceExtSubRegs(SmallVector<unsigned,4> &Srcs,
// Insert a copy or an extract to replace the original extracts.
MachineBasicBlock::iterator InsertLoc = SomeMI;
MachineInstr *CopyMI = BuildMI(*SomeMI->getParent(), SomeMI,
SomeMI->getDebugLoc(),
TII->get(TargetOpcode::COPY))
.addReg(DstReg, RegState::Define, NewDstSubIdx)
.addReg(SrcReg, 0, NewSrcSubIdx);
if (NewSrcSubIdx) {
// Insert an extract subreg.
BuildMI(*SomeMI->getParent(), InsertLoc, SomeMI->getDebugLoc(),
TII->get(TargetOpcode::EXTRACT_SUBREG), DstReg)
.addReg(SrcReg).addImm(NewSrcSubIdx);
} else if (NewDstSubIdx) {
// Do a subreg insertion.
BuildMI(*SomeMI->getParent(), InsertLoc, SomeMI->getDebugLoc(),
TII->get(TargetOpcode::INSERT_SUBREG), DstReg)
.addReg(DstReg).addReg(SrcReg).addImm(NewDstSubIdx);
} else {
// Insert a copy.
bool Emitted =
TII->copyRegToReg(*SomeMI->getParent(), InsertLoc, DstReg, SrcReg,
MRI->getRegClass(DstReg), MRI->getRegClass(SrcReg),
SomeMI->getDebugLoc());
(void)Emitted;
}
MachineBasicBlock::iterator CopyMI = prior(InsertLoc);
// Remove all the old extract instructions.
for (MachineRegisterInfo::use_nodbg_iterator