From c8e5aef1a09d4973c43fa8dd704e3fa59418c72d Mon Sep 17 00:00:00 2001 From: Jay Foad Date: Tue, 4 May 2021 11:14:42 +0100 Subject: [PATCH] [AMDGPU] Use standard MachineBasicBlock::getFallThrough method. NFCI. Differential Revision: https://reviews.llvm.org/D101825 --- llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp b/llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp index db2499a..1069693 100644 --- a/llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp +++ b/llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp @@ -730,23 +730,6 @@ void SILowerControlFlow::lowerInitExec(MachineBasicBlock *MBB, } bool SILowerControlFlow::removeMBBifRedundant(MachineBasicBlock &MBB) { - auto GetFallThroughSucc = [=](MachineBasicBlock *B) -> MachineBasicBlock * { - auto *S = B->getNextNode(); - if (!S) - return nullptr; - if (B->isSuccessor(S)) { - // The only fallthrough candidate - MachineBasicBlock::iterator I(B->getFirstInstrTerminator()); - MachineBasicBlock::iterator E = B->end(); - for (; I != E; I++) { - if (I->isBranch() && TII->getBranchDestBlock(*I) == S) - // We have unoptimized branch to layout successor - return nullptr; - } - } - return S; - }; - for (auto &I : MBB.instrs()) { if (!I.isDebugInstr() && !I.isUnconditionalBranch()) return false; @@ -759,7 +742,7 @@ bool SILowerControlFlow::removeMBBifRedundant(MachineBasicBlock &MBB) { while (!MBB.predecessors().empty()) { MachineBasicBlock *P = *MBB.pred_begin(); - if (GetFallThroughSucc(P) == &MBB) + if (P->getFallThrough() == &MBB) FallThrough = P; P->ReplaceUsesOfBlockWith(&MBB, Succ); } @@ -780,7 +763,7 @@ bool SILowerControlFlow::removeMBBifRedundant(MachineBasicBlock &MBB) { MBB.clear(); MBB.eraseFromParent(); if (FallThrough && !FallThrough->isLayoutSuccessor(Succ)) { - if (!GetFallThroughSucc(Succ)) { + if (!Succ->canFallThrough()) { MachineFunction *MF = FallThrough->getParent(); MachineFunction::iterator FallThroughPos(FallThrough); MF->splice(std::next(FallThroughPos), Succ); -- 2.7.4