[llvm] [BranchFolding] Remove getBranchDebugLoc() (PR #114613)
Ellis Hoag via llvm-commits
llvm-commits at lists.llvm.org
Mon Nov 4 09:39:56 PST 2024
https://github.com/ellishg updated https://github.com/llvm/llvm-project/pull/114613
>From d49d2187085f1f43ead549ffde269a9457ee1fe6 Mon Sep 17 00:00:00 2001
From: Ellis Hoag <ellis.sparky.hoag at gmail.com>
Date: Fri, 1 Nov 2024 15:03:18 -0700
Subject: [PATCH 1/2] [BranchFolding] Remove getBranchDebugLoc()
---
llvm/lib/CodeGen/BranchFolding.cpp | 42 ++++++++++++------------------
1 file changed, 17 insertions(+), 25 deletions(-)
diff --git a/llvm/lib/CodeGen/BranchFolding.cpp b/llvm/lib/CodeGen/BranchFolding.cpp
index f8de13650680a8..384df281c0442b 100644
--- a/llvm/lib/CodeGen/BranchFolding.cpp
+++ b/llvm/lib/CodeGen/BranchFolding.cpp
@@ -1266,15 +1266,6 @@ static bool IsBetterFallthrough(MachineBasicBlock *MBB1,
return MBB2I->isCall() && !MBB1I->isCall();
}
-/// getBranchDebugLoc - Find and return, if any, the DebugLoc of the branch
-/// instructions on the block.
-static DebugLoc getBranchDebugLoc(MachineBasicBlock &MBB) {
- MachineBasicBlock::iterator I = MBB.getLastNonDebugInstr();
- if (I != MBB.end() && I->isBranch())
- return I->getDebugLoc();
- return DebugLoc();
-}
-
static void copyDebugInfoToPredecessor(const TargetInstrInfo *TII,
MachineBasicBlock &MBB,
MachineBasicBlock &PredMBB) {
@@ -1401,11 +1392,11 @@ bool BranchFolder::OptimizeBlock(MachineBasicBlock *MBB) {
// destination, remove the branch, replacing it with an unconditional one or
// a fall-through.
if (PriorTBB && PriorTBB == PriorFBB) {
- DebugLoc dl = getBranchDebugLoc(PrevBB);
+ auto Dl = PrevBB.findBranchDebugLoc();
TII->removeBranch(PrevBB);
PriorCond.clear();
if (PriorTBB != MBB)
- TII->insertBranch(PrevBB, PriorTBB, nullptr, PriorCond, dl);
+ TII->insertBranch(PrevBB, PriorTBB, nullptr, PriorCond, Dl);
MadeChange = true;
++NumBranchOpts;
goto ReoptimizeBlock;
@@ -1459,9 +1450,9 @@ bool BranchFolder::OptimizeBlock(MachineBasicBlock *MBB) {
// If the prior block branches somewhere else on the condition and here if
// the condition is false, remove the uncond second branch.
if (PriorFBB == MBB) {
- DebugLoc dl = getBranchDebugLoc(PrevBB);
+ auto Dl = PrevBB.findBranchDebugLoc();
TII->removeBranch(PrevBB);
- TII->insertBranch(PrevBB, PriorTBB, nullptr, PriorCond, dl);
+ TII->insertBranch(PrevBB, PriorTBB, nullptr, PriorCond, Dl);
MadeChange = true;
++NumBranchOpts;
goto ReoptimizeBlock;
@@ -1473,9 +1464,9 @@ bool BranchFolder::OptimizeBlock(MachineBasicBlock *MBB) {
if (PriorTBB == MBB) {
SmallVector<MachineOperand, 4> NewPriorCond(PriorCond);
if (!TII->reverseBranchCondition(NewPriorCond)) {
- DebugLoc dl = getBranchDebugLoc(PrevBB);
+ auto Dl = PrevBB.findBranchDebugLoc();
TII->removeBranch(PrevBB);
- TII->insertBranch(PrevBB, PriorFBB, nullptr, NewPriorCond, dl);
+ TII->insertBranch(PrevBB, PriorFBB, nullptr, NewPriorCond, Dl);
MadeChange = true;
++NumBranchOpts;
goto ReoptimizeBlock;
@@ -1511,9 +1502,9 @@ bool BranchFolder::OptimizeBlock(MachineBasicBlock *MBB) {
LLVM_DEBUG(dbgs() << "\nMoving MBB: " << *MBB
<< "To make fallthrough to: " << *PriorTBB << "\n");
- DebugLoc dl = getBranchDebugLoc(PrevBB);
+ auto Dl = PrevBB.findBranchDebugLoc();
TII->removeBranch(PrevBB);
- TII->insertBranch(PrevBB, MBB, nullptr, NewPriorCond, dl);
+ TII->insertBranch(PrevBB, MBB, nullptr, NewPriorCond, Dl);
// Move this block to the end of the function.
MBB->moveAfter(&MF.back());
@@ -1574,9 +1565,9 @@ bool BranchFolder::OptimizeBlock(MachineBasicBlock *MBB) {
if (CurTBB && CurFBB && CurFBB == MBB && CurTBB != MBB) {
SmallVector<MachineOperand, 4> NewCond(CurCond);
if (!TII->reverseBranchCondition(NewCond)) {
- DebugLoc dl = getBranchDebugLoc(*MBB);
+ auto Dl = MBB->findBranchDebugLoc();
TII->removeBranch(*MBB);
- TII->insertBranch(*MBB, CurFBB, CurTBB, NewCond, dl);
+ TII->insertBranch(*MBB, CurFBB, CurTBB, NewCond, Dl);
MadeChange = true;
++NumBranchOpts;
goto ReoptimizeBlock;
@@ -1588,7 +1579,7 @@ bool BranchFolder::OptimizeBlock(MachineBasicBlock *MBB) {
if (CurTBB && CurCond.empty() && !CurFBB &&
IsBranchOnlyBlock(MBB) && CurTBB != MBB &&
!MBB->hasAddressTaken() && !MBB->isEHPad()) {
- DebugLoc dl = getBranchDebugLoc(*MBB);
+ auto Dl = MBB->findBranchDebugLoc();
// This block may contain just an unconditional branch. Because there can
// be 'non-branch terminators' in the block, try removing the branch and
// then seeing if the block is empty.
@@ -1622,9 +1613,9 @@ bool BranchFolder::OptimizeBlock(MachineBasicBlock *MBB) {
assert(!PriorFBB && "Machine CFG out of date!");
PriorFBB = MBB;
}
- DebugLoc pdl = getBranchDebugLoc(PrevBB);
+ auto PrevDl = PrevBB.findBranchDebugLoc();
TII->removeBranch(PrevBB);
- TII->insertBranch(PrevBB, PriorTBB, PriorFBB, PriorCond, pdl);
+ TII->insertBranch(PrevBB, PriorTBB, PriorFBB, PriorCond, PrevDl);
}
// Iterate through all the predecessors, revectoring each in-turn.
@@ -1657,10 +1648,11 @@ bool BranchFolder::OptimizeBlock(MachineBasicBlock *MBB) {
bool NewCurUnAnalyzable = TII->analyzeBranch(
*PMBB, NewCurTBB, NewCurFBB, NewCurCond, true);
if (!NewCurUnAnalyzable && NewCurTBB && NewCurTBB == NewCurFBB) {
- DebugLoc pdl = getBranchDebugLoc(*PMBB);
+ auto PrevDl = PMBB->findBranchDebugLoc();
TII->removeBranch(*PMBB);
NewCurCond.clear();
- TII->insertBranch(*PMBB, NewCurTBB, nullptr, NewCurCond, pdl);
+ TII->insertBranch(*PMBB, NewCurTBB, nullptr, NewCurCond,
+ PrevDl);
MadeChange = true;
++NumBranchOpts;
}
@@ -1679,7 +1671,7 @@ bool BranchFolder::OptimizeBlock(MachineBasicBlock *MBB) {
}
// Add the branch back if the block is more than just an uncond branch.
- TII->insertBranch(*MBB, CurTBB, nullptr, CurCond, dl);
+ TII->insertBranch(*MBB, CurTBB, nullptr, CurCond, Dl);
}
}
>From 9c7c28bb9c71bb25a8a9c86cb9d9d21deddac5a5 Mon Sep 17 00:00:00 2001
From: Ellis Hoag <ellis.sparky.hoag at gmail.com>
Date: Mon, 4 Nov 2024 09:39:11 -0800
Subject: [PATCH 2/2] auto -> DebugLoc
---
llvm/lib/CodeGen/BranchFolding.cpp | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/llvm/lib/CodeGen/BranchFolding.cpp b/llvm/lib/CodeGen/BranchFolding.cpp
index 384df281c0442b..ae323f1d8faf19 100644
--- a/llvm/lib/CodeGen/BranchFolding.cpp
+++ b/llvm/lib/CodeGen/BranchFolding.cpp
@@ -1392,7 +1392,7 @@ bool BranchFolder::OptimizeBlock(MachineBasicBlock *MBB) {
// destination, remove the branch, replacing it with an unconditional one or
// a fall-through.
if (PriorTBB && PriorTBB == PriorFBB) {
- auto Dl = PrevBB.findBranchDebugLoc();
+ DebugLoc Dl = PrevBB.findBranchDebugLoc();
TII->removeBranch(PrevBB);
PriorCond.clear();
if (PriorTBB != MBB)
@@ -1450,7 +1450,7 @@ bool BranchFolder::OptimizeBlock(MachineBasicBlock *MBB) {
// If the prior block branches somewhere else on the condition and here if
// the condition is false, remove the uncond second branch.
if (PriorFBB == MBB) {
- auto Dl = PrevBB.findBranchDebugLoc();
+ DebugLoc Dl = PrevBB.findBranchDebugLoc();
TII->removeBranch(PrevBB);
TII->insertBranch(PrevBB, PriorTBB, nullptr, PriorCond, Dl);
MadeChange = true;
@@ -1464,7 +1464,7 @@ bool BranchFolder::OptimizeBlock(MachineBasicBlock *MBB) {
if (PriorTBB == MBB) {
SmallVector<MachineOperand, 4> NewPriorCond(PriorCond);
if (!TII->reverseBranchCondition(NewPriorCond)) {
- auto Dl = PrevBB.findBranchDebugLoc();
+ DebugLoc Dl = PrevBB.findBranchDebugLoc();
TII->removeBranch(PrevBB);
TII->insertBranch(PrevBB, PriorFBB, nullptr, NewPriorCond, Dl);
MadeChange = true;
@@ -1502,7 +1502,7 @@ bool BranchFolder::OptimizeBlock(MachineBasicBlock *MBB) {
LLVM_DEBUG(dbgs() << "\nMoving MBB: " << *MBB
<< "To make fallthrough to: " << *PriorTBB << "\n");
- auto Dl = PrevBB.findBranchDebugLoc();
+ DebugLoc Dl = PrevBB.findBranchDebugLoc();
TII->removeBranch(PrevBB);
TII->insertBranch(PrevBB, MBB, nullptr, NewPriorCond, Dl);
@@ -1565,7 +1565,7 @@ bool BranchFolder::OptimizeBlock(MachineBasicBlock *MBB) {
if (CurTBB && CurFBB && CurFBB == MBB && CurTBB != MBB) {
SmallVector<MachineOperand, 4> NewCond(CurCond);
if (!TII->reverseBranchCondition(NewCond)) {
- auto Dl = MBB->findBranchDebugLoc();
+ DebugLoc Dl = MBB->findBranchDebugLoc();
TII->removeBranch(*MBB);
TII->insertBranch(*MBB, CurFBB, CurTBB, NewCond, Dl);
MadeChange = true;
@@ -1579,7 +1579,7 @@ bool BranchFolder::OptimizeBlock(MachineBasicBlock *MBB) {
if (CurTBB && CurCond.empty() && !CurFBB &&
IsBranchOnlyBlock(MBB) && CurTBB != MBB &&
!MBB->hasAddressTaken() && !MBB->isEHPad()) {
- auto Dl = MBB->findBranchDebugLoc();
+ DebugLoc Dl = MBB->findBranchDebugLoc();
// This block may contain just an unconditional branch. Because there can
// be 'non-branch terminators' in the block, try removing the branch and
// then seeing if the block is empty.
@@ -1613,7 +1613,7 @@ bool BranchFolder::OptimizeBlock(MachineBasicBlock *MBB) {
assert(!PriorFBB && "Machine CFG out of date!");
PriorFBB = MBB;
}
- auto PrevDl = PrevBB.findBranchDebugLoc();
+ DebugLoc PrevDl = PrevBB.findBranchDebugLoc();
TII->removeBranch(PrevBB);
TII->insertBranch(PrevBB, PriorTBB, PriorFBB, PriorCond, PrevDl);
}
@@ -1648,7 +1648,7 @@ bool BranchFolder::OptimizeBlock(MachineBasicBlock *MBB) {
bool NewCurUnAnalyzable = TII->analyzeBranch(
*PMBB, NewCurTBB, NewCurFBB, NewCurCond, true);
if (!NewCurUnAnalyzable && NewCurTBB && NewCurTBB == NewCurFBB) {
- auto PrevDl = PMBB->findBranchDebugLoc();
+ DebugLoc PrevDl = PMBB->findBranchDebugLoc();
TII->removeBranch(*PMBB);
NewCurCond.clear();
TII->insertBranch(*PMBB, NewCurTBB, nullptr, NewCurCond,
More information about the llvm-commits
mailing list