Fix more of PR8825. Now all of CodeGen/ARM passes with VerifyCoalescing turned on.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131578 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Cameron Zwarich 2011-05-18 21:25:14 +00:00
parent 673968ae78
commit 955db42568

View File

@ -1672,10 +1672,14 @@ bool ARMPreAllocLoadStoreOpt::RescheduleOps(MachineBasicBlock *MBB,
Ops.pop_back(); Ops.pop_back();
Ops.pop_back(); Ops.pop_back();
const TargetInstrDesc &TID = TII->get(NewOpc);
const TargetRegisterClass *TRC = TID.OpInfo[0].getRegClass(TRI);
MRI->constrainRegClass(EvenReg, TRC);
MRI->constrainRegClass(OddReg, TRC);
// Form the pair instruction. // Form the pair instruction.
if (isLd) { if (isLd) {
MachineInstrBuilder MIB = BuildMI(*MBB, InsertPos, MachineInstrBuilder MIB = BuildMI(*MBB, InsertPos, dl, TID)
dl, TII->get(NewOpc))
.addReg(EvenReg, RegState::Define) .addReg(EvenReg, RegState::Define)
.addReg(OddReg, RegState::Define) .addReg(OddReg, RegState::Define)
.addReg(BaseReg); .addReg(BaseReg);
@ -1687,8 +1691,7 @@ bool ARMPreAllocLoadStoreOpt::RescheduleOps(MachineBasicBlock *MBB,
MIB.addImm(Offset).addImm(Pred).addReg(PredReg); MIB.addImm(Offset).addImm(Pred).addReg(PredReg);
++NumLDRDFormed; ++NumLDRDFormed;
} else { } else {
MachineInstrBuilder MIB = BuildMI(*MBB, InsertPos, MachineInstrBuilder MIB = BuildMI(*MBB, InsertPos, dl, TID)
dl, TII->get(NewOpc))
.addReg(EvenReg) .addReg(EvenReg)
.addReg(OddReg) .addReg(OddReg)
.addReg(BaseReg); .addReg(BaseReg);