diff options
author | Daniel Hill <dhhillaz@gmail.com> | 2024-07-19 16:52:01 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-19 16:52:01 -0700 |
commit | b686600a57f37a938d5ede54b789d6b3543561b0 (patch) | |
tree | 0fcd0e6b7c8ca4107b4eedcaa5cfb8d29a078f33 /bolt/lib/Rewrite/BinaryPassManager.cpp | |
parent | fada9227325b3eaa0bdc09a486f29a7f08b7b3fb (diff) | |
download | llvm-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.cpp | 7 |
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); |