aboutsummaryrefslogtreecommitdiff
path: root/bolt/lib/Rewrite/BinaryPassManager.cpp
diff options
context:
space:
mode:
authorDaniel Hill <dhhillaz@gmail.com>2024-07-19 16:52:01 -0700
committerGitHub <noreply@github.com>2024-07-19 16:52:01 -0700
commitb686600a57f37a938d5ede54b789d6b3543561b0 (patch)
tree0fcd0e6b7c8ca4107b4eedcaa5cfb8d29a078f33 /bolt/lib/Rewrite/BinaryPassManager.cpp
parentfada9227325b3eaa0bdc09a486f29a7f08b7b3fb (diff)
downloadllvm-b686600a57f37a938d5ede54b789d6b3543561b0.zip
llvm-b686600a57f37a938d5ede54b789d6b3543561b0.tar.gz
llvm-b686600a57f37a938d5ede54b789d6b3543561b0.tar.bz2
[BOLT] Skip instruction shortening (#93032)
Add the ability to disable the instruction shortening pass through --shorten-instructions=false
Diffstat (limited to 'bolt/lib/Rewrite/BinaryPassManager.cpp')
-rw-r--r--bolt/lib/Rewrite/BinaryPassManager.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/bolt/lib/Rewrite/BinaryPassManager.cpp b/bolt/lib/Rewrite/BinaryPassManager.cpp
index aaa0e1f..5dfef0b 100644
--- a/bolt/lib/Rewrite/BinaryPassManager.cpp
+++ b/bolt/lib/Rewrite/BinaryPassManager.cpp
@@ -263,6 +263,10 @@ static cl::opt<bool> CMOVConversionFlag("cmov-conversion",
cl::ReallyHidden,
cl::cat(BoltOptCategory));
+static cl::opt<bool> ShortenInstructions("shorten-instructions",
+ cl::desc("shorten instructions"),
+ cl::init(true),
+ cl::cat(BoltOptCategory));
} // namespace opts
namespace llvm {
@@ -378,7 +382,8 @@ Error BinaryFunctionPassManager::runAllPasses(BinaryContext &BC) {
else if (opts::Hugify)
Manager.registerPass(std::make_unique<HugePage>(NeverPrint));
- Manager.registerPass(std::make_unique<ShortenInstructions>(NeverPrint));
+ Manager.registerPass(std::make_unique<ShortenInstructions>(NeverPrint),
+ opts::ShortenInstructions);
Manager.registerPass(std::make_unique<RemoveNops>(NeverPrint),
!opts::KeepNops);