diff options
author | Vladislav Khmelevsky <och95@yandex.ru> | 2022-03-09 19:28:06 +0300 |
---|---|---|
committer | Vladislav Khmelevsky <och95@yandex.ru> | 2022-03-10 19:48:48 +0300 |
commit | 04b87cf0e79d43bc4bde1e16356d36738e27bd9b (patch) | |
tree | 49f3816c62a660e462f5cc10ba0e624216b8d7e9 /bolt | |
parent | b24de9f6845217f03014a36814d61f4ed91f0405 (diff) |
[BOLT] LongJmp: Use per-function alignment values
The per-function alignment values must be used in order to create
tentative layout.
Differential Revision: https://reviews.llvm.org/D121298
Diffstat (limited to 'bolt')
-rw-r--r-- | bolt/lib/Passes/LongJmp.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/bolt/lib/Passes/LongJmp.cpp b/bolt/lib/Passes/LongJmp.cpp index 6af0e97c02b5..9816e5d83197 100644 --- a/bolt/lib/Passes/LongJmp.cpp +++ b/bolt/lib/Passes/LongJmp.cpp @@ -21,8 +21,6 @@ namespace opts { extern cl::OptionCategory BoltOptCategory; extern cl::opt<bool> UseOldText; -extern cl::opt<unsigned> AlignFunctions; -extern cl::opt<unsigned> AlignFunctionsMaxBytes; extern cl::opt<bool> HotFunctionsAtEnd; static cl::opt<bool> @@ -302,8 +300,8 @@ uint64_t LongJmpPass::tentativeLayoutRelocColdPart( continue; DotAddress = alignTo(DotAddress, BinaryFunction::MinAlign); uint64_t Pad = - offsetToAlignment(DotAddress, llvm::Align(opts::AlignFunctions)); - if (Pad <= opts::AlignFunctionsMaxBytes) + offsetToAlignment(DotAddress, llvm::Align(Func->getAlignment())); + if (Pad <= Func->getMaxColdAlignmentBytes()) DotAddress += Pad; ColdAddresses[Func] = DotAddress; LLVM_DEBUG(dbgs() << Func->getPrintName() << " cold tentative: " @@ -349,8 +347,8 @@ uint64_t LongJmpPass::tentativeLayoutRelocMode( DotAddress = alignTo(DotAddress, BinaryFunction::MinAlign); uint64_t Pad = - offsetToAlignment(DotAddress, llvm::Align(opts::AlignFunctions)); - if (Pad <= opts::AlignFunctionsMaxBytes) + offsetToAlignment(DotAddress, llvm::Align(Func->getAlignment())); + if (Pad <= Func->getMaxAlignmentBytes()) DotAddress += Pad; HotAddresses[Func] = DotAddress; LLVM_DEBUG(dbgs() << Func->getPrintName() << " tentative: " |