aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@acm.org>2024-05-17 15:40:40 -0400
committerGitHub <noreply@github.com>2024-05-17 15:40:40 -0400
commit76fdc2e52719c7164e3f2cb05158a74df2b3d22e (patch)
treed57be5a38139a37cfbb9330d9b0369c9dcc7a11d
parent1b58940c88edaad9320bd21eaa7da65f7e791552 (diff)
downloadllvm-76fdc2e52719c7164e3f2cb05158a74df2b3d22e.zip
llvm-76fdc2e52719c7164e3f2cb05158a74df2b3d22e.tar.gz
llvm-76fdc2e52719c7164e3f2cb05158a74df2b3d22e.tar.bz2
[BOLT][NFC] Rename isUnsupportedBranch to isReversibleBranch (#92447)
`isUnsupportedBranch` is not a very informative name, and doesn't match its corresponding `reverseBranchCondition`, as I noted in PR #92018. Here's a renaming to a more mnemonic name.
-rw-r--r--bolt/include/bolt/Core/MCPlusBuilder.h4
-rw-r--r--bolt/lib/Core/BinaryFunction.cpp4
-rw-r--r--bolt/lib/Passes/Instrumentation.cpp2
-rw-r--r--bolt/lib/Target/X86/X86MCPlusBuilder.cpp10
4 files changed, 10 insertions, 10 deletions
diff --git a/bolt/include/bolt/Core/MCPlusBuilder.h b/bolt/include/bolt/Core/MCPlusBuilder.h
index f7614cf..f7cf538 100644
--- a/bolt/include/bolt/Core/MCPlusBuilder.h
+++ b/bolt/include/bolt/Core/MCPlusBuilder.h
@@ -438,8 +438,8 @@ public:
return false;
}
- /// Check whether we support inverting this branch
- virtual bool isUnsupportedBranch(const MCInst &Inst) const { return false; }
+ /// Check whether this conditional branch can be reversed
+ virtual bool isReversibleBranch(const MCInst &Inst) const { return true; }
/// Return true of the instruction is of pseudo kind.
virtual bool isPseudo(const MCInst &Inst) const {
diff --git a/bolt/lib/Core/BinaryFunction.cpp b/bolt/lib/Core/BinaryFunction.cpp
index 4f44ba0..10b93e7 100644
--- a/bolt/lib/Core/BinaryFunction.cpp
+++ b/bolt/lib/Core/BinaryFunction.cpp
@@ -1284,7 +1284,7 @@ Error BinaryFunction::disassemble() {
const bool IsCondBranch = MIB->isConditionalBranch(Instruction);
MCSymbol *TargetSymbol = nullptr;
- if (BC.MIB->isUnsupportedBranch(Instruction)) {
+ if (!BC.MIB->isReversibleBranch(Instruction)) {
setIgnored();
if (BinaryFunction *TargetFunc =
BC.getBinaryFunctionContainingAddress(TargetAddress))
@@ -3381,7 +3381,7 @@ void BinaryFunction::fixBranches() {
// Reverse branch condition and swap successors.
auto swapSuccessors = [&]() {
- if (MIB->isUnsupportedBranch(*CondBranch)) {
+ if (!MIB->isReversibleBranch(*CondBranch)) {
if (opts::Verbosity) {
BC.outs() << "BOLT-INFO: unable to swap successors in " << *this
<< '\n';
diff --git a/bolt/lib/Passes/Instrumentation.cpp b/bolt/lib/Passes/Instrumentation.cpp
index 68acff7..14f506f 100644
--- a/bolt/lib/Passes/Instrumentation.cpp
+++ b/bolt/lib/Passes/Instrumentation.cpp
@@ -480,7 +480,7 @@ void Instrumentation::instrumentFunction(BinaryFunction &Function,
else if (BC.MIB->isUnconditionalBranch(Inst))
HasUnconditionalBranch = true;
else if ((!BC.MIB->isCall(Inst) && !BC.MIB->isConditionalBranch(Inst)) ||
- BC.MIB->isUnsupportedBranch(Inst))
+ !BC.MIB->isReversibleBranch(Inst))
continue;
const uint32_t FromOffset = *BC.MIB->getOffset(Inst);
diff --git a/bolt/lib/Target/X86/X86MCPlusBuilder.cpp b/bolt/lib/Target/X86/X86MCPlusBuilder.cpp
index 8b18949..8fdacff 100644
--- a/bolt/lib/Target/X86/X86MCPlusBuilder.cpp
+++ b/bolt/lib/Target/X86/X86MCPlusBuilder.cpp
@@ -328,19 +328,19 @@ public:
return false;
}
- bool isUnsupportedBranch(const MCInst &Inst) const override {
+ bool isReversibleBranch(const MCInst &Inst) const override {
if (isDynamicBranch(Inst))
- return true;
+ return false;
switch (Inst.getOpcode()) {
default:
- return false;
+ return true;
case X86::LOOP:
case X86::LOOPE:
case X86::LOOPNE:
case X86::JECXZ:
case X86::JRCXZ:
- return true;
+ return false;
}
}
@@ -1874,7 +1874,7 @@ public:
}
// Handle conditional branches and ignore indirect branches
- if (!isUnsupportedBranch(*I) && getCondCode(*I) == X86::COND_INVALID) {
+ if (isReversibleBranch(*I) && getCondCode(*I) == X86::COND_INVALID) {
// Indirect branch
return false;
}