[llvm] [BOLT] Run EliminateUnreachableBlocks in parallel (PR #71299)
via llvm-commits
llvm-commits at lists.llvm.org
Sat Nov 4 15:07:27 PDT 2023
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff 3ab6209a3f93bdbeec8e9b9fcc00a9a4980915ff 3c3d5e3c1b6fe1bdeca5352bbb88adb296b6f996 -- bolt/include/bolt/Core/BinaryFunction.h bolt/lib/Core/BinaryFunction.cpp bolt/lib/Passes/BinaryPasses.cpp
``````````
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/bolt/include/bolt/Core/BinaryFunction.h b/bolt/include/bolt/Core/BinaryFunction.h
index 2abaff663624..771008f3b5f9 100644
--- a/bolt/include/bolt/Core/BinaryFunction.h
+++ b/bolt/include/bolt/Core/BinaryFunction.h
@@ -1445,7 +1445,8 @@ public:
/// Rebuilds BBs layout, ignoring dead BBs. Returns the number of removed
/// BBs and the removed number of bytes of code.
- std::pair<unsigned, uint64_t> eraseInvalidBBs(const MCCodeEmitter *Emitter = nullptr);
+ std::pair<unsigned, uint64_t>
+ eraseInvalidBBs(const MCCodeEmitter *Emitter = nullptr);
/// Get the relative order between two basic blocks in the original
/// layout. The result is > 0 if B occurs before A and < 0 if B
diff --git a/bolt/lib/Core/BinaryFunction.cpp b/bolt/lib/Core/BinaryFunction.cpp
index 11aa9b364220..361036316b52 100644
--- a/bolt/lib/Core/BinaryFunction.cpp
+++ b/bolt/lib/Core/BinaryFunction.cpp
@@ -322,7 +322,8 @@ void BinaryFunction::markUnreachableBlocks() {
// Any unnecessary fallthrough jumps revealed after calling eraseInvalidBBs
// will be cleaned up by fixBranches().
-std::pair<unsigned, uint64_t> BinaryFunction::eraseInvalidBBs(const MCCodeEmitter *Emitter) {
+std::pair<unsigned, uint64_t>
+BinaryFunction::eraseInvalidBBs(const MCCodeEmitter *Emitter) {
DenseSet<const BinaryBasicBlock *> InvalidBBs;
unsigned Count = 0;
uint64_t Bytes = 0;
diff --git a/bolt/lib/Passes/BinaryPasses.cpp b/bolt/lib/Passes/BinaryPasses.cpp
index 870ea6497b63..cfd9e103a52d 100644
--- a/bolt/lib/Passes/BinaryPasses.cpp
+++ b/bolt/lib/Passes/BinaryPasses.cpp
@@ -322,16 +322,16 @@ void EliminateUnreachableBlocks::runOnFunction(BinaryFunction &Function) {
uint64_t Bytes;
Function.markUnreachableBlocks();
LLVM_DEBUG({
- for (BinaryBasicBlock &BB : Function) {
- if (!BB.isValid()) {
- dbgs() << "BOLT-INFO: UCE found unreachable block " << BB.getName()
- << " in function " << Function << "\n";
- Function.dump();
- }
+ for (BinaryBasicBlock &BB : Function) {
+ if (!BB.isValid()) {
+ dbgs() << "BOLT-INFO: UCE found unreachable block " << BB.getName()
+ << " in function " << Function << "\n";
+ Function.dump();
}
- });
+ }
+ });
BinaryContext::IndependentCodeEmitter Emitter =
- BC.createIndependentMCCodeEmitter();
+ BC.createIndependentMCCodeEmitter();
std::tie(Count, Bytes) = Function.eraseInvalidBBs(Emitter.MCE.get());
DeletedBlocks += Count;
DeletedBytes += Bytes;
@@ -355,8 +355,8 @@ void EliminateUnreachableBlocks::runOnFunctions(BinaryContext &BC) {
};
ParallelUtilities::runOnEachFunction(
- BC, ParallelUtilities::SchedulingPolicy::SP_CONSTANT, WorkFun,
- SkipPredicate, "elimininate-unreachable");
+ BC, ParallelUtilities::SchedulingPolicy::SP_CONSTANT, WorkFun,
+ SkipPredicate, "elimininate-unreachable");
if (DeletedBlocks)
outs() << "BOLT-INFO: UCE removed " << DeletedBlocks << " blocks and "
``````````
</details>
https://github.com/llvm/llvm-project/pull/71299
More information about the llvm-commits
mailing list