mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 03:33:20 +01:00
Remove unnecessary gotos to fall-thru successors.
llvm-svn: 85257
This commit is contained in:
parent
ec7abb4dd5
commit
c690360ed5
@ -214,3 +214,25 @@ InsertBranch(MachineBasicBlock &MBB, MachineBasicBlock *TBB,
|
||||
// returning NULL.
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool PIC16InstrInfo::AnalyzeBranch(MachineBasicBlock &MBB,
|
||||
MachineBasicBlock *&TBB,
|
||||
MachineBasicBlock *&FBB,
|
||||
SmallVectorImpl<MachineOperand> &Cond,
|
||||
bool AllowModify) const {
|
||||
MachineBasicBlock::iterator I = MBB.end();
|
||||
if (I == MBB.begin())
|
||||
return true;
|
||||
|
||||
// Get the terminator instruction.
|
||||
--I;
|
||||
// Handle unconditional branches. If the unconditional branch's target is
|
||||
// successor basic block then remove the unconditional branch.
|
||||
if (I->getOpcode() == PIC16::br_uncond && AllowModify) {
|
||||
if (MBB.isLayoutSuccessor(I->getOperand(0).getMBB())) {
|
||||
TBB = 0;
|
||||
I->eraseFromParent();
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -68,7 +68,10 @@ public:
|
||||
unsigned InsertBranch(MachineBasicBlock &MBB, MachineBasicBlock *TBB,
|
||||
MachineBasicBlock *FBB,
|
||||
const SmallVectorImpl<MachineOperand> &Cond) const;
|
||||
|
||||
virtual bool AnalyzeBranch(MachineBasicBlock &MBB, MachineBasicBlock *&TBB,
|
||||
MachineBasicBlock *&FBB,
|
||||
SmallVectorImpl<MachineOperand> &Cond,
|
||||
bool AllowModify) const;
|
||||
};
|
||||
} // namespace llvm
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user