aboutsummaryrefslogtreecommitdiff
path: root/bolt/lib/Rewrite/BinaryPassManager.cpp
diff options
context:
space:
mode:
authorVladislav Khmelevsky <och95@yandex.ru>2022-07-07 00:01:33 +0300
committerVladislav Khmelevsky <och95@yandex.ru>2022-07-13 14:47:22 +0300
commit35efe1d806358df6e45dde8218a143138dd8f0a8 (patch)
tree7c083eeb3a09c0538e35d34b49238f55e3107fec /bolt/lib/Rewrite/BinaryPassManager.cpp
parentf827b4b657d5922beef3799337e91ba98fce852e (diff)
downloadllvm-35efe1d806358df6e45dde8218a143138dd8f0a8.zip
llvm-35efe1d806358df6e45dde8218a143138dd8f0a8.tar.gz
llvm-35efe1d806358df6e45dde8218a143138dd8f0a8.tar.bz2
[BOLT][AArch64] Handle gold linker veneers
The gold linker veneers are written between functions without symbols, so we to handle it specially in BOLT. Vladislav Khmelevsky, Advanced Software Technology Lab, Huawei Differential Revision: https://reviews.llvm.org/D129260
Diffstat (limited to 'bolt/lib/Rewrite/BinaryPassManager.cpp')
-rw-r--r--bolt/lib/Rewrite/BinaryPassManager.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/bolt/lib/Rewrite/BinaryPassManager.cpp b/bolt/lib/Rewrite/BinaryPassManager.cpp
index 9c6a0fd..dff93b9 100644
--- a/bolt/lib/Rewrite/BinaryPassManager.cpp
+++ b/bolt/lib/Rewrite/BinaryPassManager.cpp
@@ -313,6 +313,10 @@ void BinaryFunctionPassManager::runAllPasses(BinaryContext &BC) {
Manager.registerPass(std::make_unique<AsmDumpPass>(),
opts::AsmDump.getNumOccurrences());
+ if (BC.isAArch64())
+ Manager.registerPass(
+ std::make_unique<VeneerElimination>(PrintVeneerElimination));
+
if (opts::Instrument)
Manager.registerPass(std::make_unique<Instrumentation>(NeverPrint));
@@ -339,10 +343,6 @@ void BinaryFunctionPassManager::runAllPasses(BinaryContext &BC) {
Manager.registerPass(std::make_unique<IdenticalCodeFolding>(PrintICF),
opts::ICF);
- if (BC.isAArch64())
- Manager.registerPass(
- std::make_unique<VeneerElimination>(PrintVeneerElimination));
-
Manager.registerPass(
std::make_unique<SpecializeMemcpy1>(NeverPrint, opts::SpecializeMemcpy1),
!opts::SpecializeMemcpy1.empty());