[llvm] r174666 - [mips] Make Filler a class and reduce indentation.
Akira Hatanaka
ahatanaka at mips.com
Thu Feb 7 13:32:33 PST 2013
Author: ahatanak
Date: Thu Feb 7 15:32:32 2013
New Revision: 174666
URL: http://llvm.org/viewvc/llvm-project?rev=174666&view=rev
Log:
[mips] Make Filler a class and reduce indentation.
Modified:
llvm/trunk/lib/Target/Mips/MipsDelaySlotFiller.cpp
Modified: llvm/trunk/lib/Target/Mips/MipsDelaySlotFiller.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/MipsDelaySlotFiller.cpp?rev=174666&r1=174665&r2=174666&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Mips/MipsDelaySlotFiller.cpp (original)
+++ llvm/trunk/lib/Target/Mips/MipsDelaySlotFiller.cpp Thu Feb 7 15:32:32 2013
@@ -45,15 +45,8 @@ static cl::opt<bool> SkipDelaySlotFiller
cl::Hidden);
namespace {
- struct Filler : public MachineFunctionPass {
- typedef MachineBasicBlock::instr_iterator InstrIter;
- typedef MachineBasicBlock::reverse_instr_iterator ReverseInstrIter;
-
- TargetMachine &TM;
- const TargetInstrInfo *TII;
- InstrIter LastFiller;
-
- static char ID;
+ class Filler : public MachineFunctionPass {
+ public:
Filler(TargetMachine &tm)
: MachineFunctionPass(ID), TM(tm), TII(tm.getInstrInfo()) { }
@@ -61,7 +54,6 @@ namespace {
return "Mips Delay Slot Filler";
}
- bool runOnMachineBasicBlock(MachineBasicBlock &MBB);
bool runOnMachineFunction(MachineFunction &F) {
if (SkipDelaySlotFiller)
return false;
@@ -73,6 +65,12 @@ namespace {
return Changed;
}
+ private:
+ typedef MachineBasicBlock::instr_iterator InstrIter;
+ typedef MachineBasicBlock::reverse_instr_iterator ReverseInstrIter;
+
+ bool runOnMachineBasicBlock(MachineBasicBlock &MBB);
+
bool isDelayFiller(MachineBasicBlock &MBB,
InstrIter candidate);
@@ -96,7 +94,11 @@ namespace {
findDelayInstr(MachineBasicBlock &MBB, InstrIter slot,
InstrIter &Filler);
+ TargetMachine &TM;
+ const TargetInstrInfo *TII;
+ InstrIter LastFiller;
+ static char ID;
};
char Filler::ID = 0;
} // end of anonymous namespace
@@ -108,31 +110,33 @@ runOnMachineBasicBlock(MachineBasicBlock
bool Changed = false;
LastFiller = MBB.instr_end();
- for (InstrIter I = MBB.instr_begin(); I != MBB.instr_end(); ++I)
- if (I->hasDelaySlot()) {
- ++FilledSlots;
- Changed = true;
- InstrIter InstrWithSlot = I;
- InstrIter D;
-
- // Delay slot filling is disabled at -O0.
- if (!DisableDelaySlotFiller && (TM.getOptLevel() != CodeGenOpt::None) &&
- findDelayInstr(MBB, I, D)) {
- MBB.splice(llvm::next(I), &MBB, D);
- ++UsefulSlots;
- } else
- BuildMI(MBB, llvm::next(I), I->getDebugLoc(), TII->get(Mips::NOP));
-
- // Record the filler instruction that filled the delay slot.
- // The instruction after it will be visited in the next iteration.
- LastFiller = ++I;
-
- // Bundle the delay slot filler to InstrWithSlot so that the machine
- // verifier doesn't expect this instruction to be a terminator.
- MIBundleBuilder(MBB, InstrWithSlot, llvm::next(LastFiller));
- }
- return Changed;
+ for (InstrIter I = MBB.instr_begin(); I != MBB.instr_end(); ++I) {
+ if (!I->hasDelaySlot())
+ continue;
+
+ ++FilledSlots;
+ Changed = true;
+ InstrIter InstrWithSlot = I;
+ InstrIter D;
+
+ // Delay slot filling is disabled at -O0.
+ if (!DisableDelaySlotFiller && (TM.getOptLevel() != CodeGenOpt::None) &&
+ findDelayInstr(MBB, I, D)) {
+ MBB.splice(llvm::next(I), &MBB, D);
+ ++UsefulSlots;
+ } else
+ BuildMI(MBB, llvm::next(I), I->getDebugLoc(), TII->get(Mips::NOP));
+
+ // Record the filler instruction that filled the delay slot.
+ // The instruction after it will be visited in the next iteration.
+ LastFiller = ++I;
+
+ // Bundle the delay slot filler to InstrWithSlot so that the machine
+ // verifier doesn't expect this instruction to be a terminator.
+ MIBundleBuilder(MBB, InstrWithSlot, llvm::next(LastFiller));
+ }
+ return Changed;
}
/// createMipsDelaySlotFillerPass - Returns a pass that fills in delay
More information about the llvm-commits
mailing list