Index: lib/Target/MSP430/MSP430BranchSelector.cpp =================================================================== --- lib/Target/MSP430/MSP430BranchSelector.cpp +++ lib/Target/MSP430/MSP430BranchSelector.cpp @@ -67,16 +67,12 @@ // Measure each MBB and compute a size for the entire function. unsigned FuncSize = 0; - for (MachineFunction::iterator MFI = Fn.begin(), E = Fn.end(); MFI != E; - ++MFI) { - MachineBasicBlock *MBB = &*MFI; - + for (MachineBasicBlock &MBB : Fn) { unsigned BlockSize = 0; - for (MachineBasicBlock::iterator MBBI = MBB->begin(), EE = MBB->end(); - MBBI != EE; ++MBBI) - BlockSize += TII->GetInstSizeInBytes(MBBI); + for (MachineInstr &MI : MBB) + BlockSize += TII->GetInstSizeInBytes(MI); - BlockSizes[MBB->getNumber()] = BlockSize; + BlockSizes[MBB.getNumber()] = BlockSize; FuncSize += BlockSize; } @@ -111,7 +107,7 @@ I != E; ++I) { if ((I->getOpcode() != MSP430::JCC || I->getOperand(0).isImm()) && I->getOpcode() != MSP430::JMP) { - MBBStartOffset += TII->GetInstSizeInBytes(I); + MBBStartOffset += TII->GetInstSizeInBytes(*I); continue; } @@ -145,8 +141,8 @@ // Otherwise, we have to expand it to a long branch. unsigned NewSize; - MachineInstr *OldBranch = I; - DebugLoc dl = OldBranch->getDebugLoc(); + MachineInstr &OldBranch = *I; + DebugLoc dl = OldBranch.getDebugLoc(); if (I->getOpcode() == MSP430::JMP) { NewSize = 4; @@ -168,7 +164,7 @@ I = BuildMI(MBB, I, dl, TII->get(MSP430::Bi)).addMBB(Dest); // Remove the old branch from the function. - OldBranch->eraseFromParent(); + OldBranch.eraseFromParent(); // Remember that this instruction is NewSize bytes, increase the size of the // block by NewSize-2, remember to iterate. Index: lib/Target/MSP430/MSP430FrameLowering.cpp =================================================================== --- lib/Target/MSP430/MSP430FrameLowering.cpp +++ lib/Target/MSP430/MSP430FrameLowering.cpp @@ -235,8 +235,8 @@ // adjcallstackup instruction into a 'sub SP, ' and the // adjcallstackdown instruction into 'add SP, ' // TODO: consider using push / pop instead of sub + store / add - MachineInstr *Old = I; - uint64_t Amount = Old->getOperand(0).getImm(); + MachineInstr &Old = *I; + uint64_t Amount = Old.getOperand(0).getImm(); if (Amount != 0) { // We need to keep the stack aligned properly. To do this, we round the // amount of space needed for the outgoing arguments up to the next @@ -244,19 +244,21 @@ Amount = (Amount+StackAlign-1)/StackAlign*StackAlign; MachineInstr *New = nullptr; - if (Old->getOpcode() == TII.getCallFrameSetupOpcode()) { - New = BuildMI(MF, Old->getDebugLoc(), - TII.get(MSP430::SUB16ri), MSP430::SP) - .addReg(MSP430::SP).addImm(Amount); + if (Old.getOpcode() == TII.getCallFrameSetupOpcode()) { + New = + BuildMI(MF, Old.getDebugLoc(), TII.get(MSP430::SUB16ri), MSP430::SP) + .addReg(MSP430::SP) + .addImm(Amount); } else { - assert(Old->getOpcode() == TII.getCallFrameDestroyOpcode()); + assert(Old.getOpcode() == TII.getCallFrameDestroyOpcode()); // factor out the amount the callee already popped. - uint64_t CalleeAmt = Old->getOperand(1).getImm(); + uint64_t CalleeAmt = Old.getOperand(1).getImm(); Amount -= CalleeAmt; if (Amount) - New = BuildMI(MF, Old->getDebugLoc(), - TII.get(MSP430::ADD16ri), MSP430::SP) - .addReg(MSP430::SP).addImm(Amount); + New = BuildMI(MF, Old.getDebugLoc(), TII.get(MSP430::ADD16ri), + MSP430::SP) + .addReg(MSP430::SP) + .addImm(Amount); } if (New) { @@ -271,10 +273,11 @@ // If we are performing frame pointer elimination and if the callee pops // something off the stack pointer, add it back. if (uint64_t CalleeAmt = I->getOperand(1).getImm()) { - MachineInstr *Old = I; + MachineInstr &Old = *I; MachineInstr *New = - BuildMI(MF, Old->getDebugLoc(), TII.get(MSP430::SUB16ri), - MSP430::SP).addReg(MSP430::SP).addImm(CalleeAmt); + BuildMI(MF, Old.getDebugLoc(), TII.get(MSP430::SUB16ri), MSP430::SP) + .addReg(MSP430::SP) + .addImm(CalleeAmt); // The SRW implicit def is dead. New->getOperand(3).setIsDead(); Index: lib/Target/MSP430/MSP430InstrInfo.h =================================================================== --- lib/Target/MSP430/MSP430InstrInfo.h +++ lib/Target/MSP430/MSP430InstrInfo.h @@ -68,7 +68,7 @@ const TargetRegisterClass *RC, const TargetRegisterInfo *TRI) const override; - unsigned GetInstSizeInBytes(const MachineInstr *MI) const; + unsigned GetInstSizeInBytes(const MachineInstr &MI) const; // Branch folding goodness bool Index: lib/Target/MSP430/MSP430InstrInfo.cpp =================================================================== --- lib/Target/MSP430/MSP430InstrInfo.cpp +++ lib/Target/MSP430/MSP430InstrInfo.cpp @@ -293,8 +293,8 @@ /// GetInstSize - Return the number of bytes of code the specified /// instruction may be. This returns the maximum number of bytes. /// -unsigned MSP430InstrInfo::GetInstSizeInBytes(const MachineInstr *MI) const { - const MCInstrDesc &Desc = MI->getDesc(); +unsigned MSP430InstrInfo::GetInstSizeInBytes(const MachineInstr &MI) const { + const MCInstrDesc &Desc = MI.getDesc(); switch (Desc.TSFlags & MSP430II::SizeMask) { default: @@ -307,14 +307,14 @@ case TargetOpcode::DBG_VALUE: return 0; case TargetOpcode::INLINEASM: { - const MachineFunction *MF = MI->getParent()->getParent(); + const MachineFunction *MF = MI.getParent()->getParent(); const TargetInstrInfo &TII = *MF->getSubtarget().getInstrInfo(); - return TII.getInlineAsmLength(MI->getOperand(0).getSymbolName(), + return TII.getInlineAsmLength(MI.getOperand(0).getSymbolName(), *MF->getTarget().getMCAsmInfo()); } } case MSP430II::SizeSpecial: - switch (MI->getOpcode()) { + switch (MI.getOpcode()) { default: llvm_unreachable("Unknown instruction size!"); case MSP430::SAR8r1c: case MSP430::SAR16r1c: