Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/llvm/llvm-project.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/bolt
diff options
context:
space:
mode:
authorVladislav Khmelevsky <och95@yandex.ru>2022-03-09 19:28:06 +0300
committerVladislav Khmelevsky <och95@yandex.ru>2022-03-10 19:48:48 +0300
commit04b87cf0e79d43bc4bde1e16356d36738e27bd9b (patch)
tree49f3816c62a660e462f5cc10ba0e624216b8d7e9 /bolt
parentb24de9f6845217f03014a36814d61f4ed91f0405 (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.cpp10
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: "