[llvm] [Sample Profile] make page size configurable for ProfiledBinary (PR #164773)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Oct 23 01:29:17 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-pgo
Author: None (wjx951753)
<details>
<summary>Changes</summary>
Replace hardcoded 1024 page size with cofigurable Pagesize parameter.
---
Full diff: https://github.com/llvm/llvm-project/pull/164773.diff
1 Files Affected:
- (modified) llvm/tools/llvm-profgen/ProfiledBinary.cpp (+6-1)
``````````diff
diff --git a/llvm/tools/llvm-profgen/ProfiledBinary.cpp b/llvm/tools/llvm-profgen/ProfiledBinary.cpp
index 94728ce4abffe..a230238c8a218 100644
--- a/llvm/tools/llvm-profgen/ProfiledBinary.cpp
+++ b/llvm/tools/llvm-profgen/ProfiledBinary.cpp
@@ -70,6 +70,11 @@ static cl::opt<bool>
cl::desc("Generate the profile for Linux kernel binary."),
cl::cat(ProfGenCategory));
+static cl::opt<uint64_t>
+ Pagesize("page-size",
+ cl::desc("page size"), cl::init(0x1000),
+ cl::desc("target system pagee size."));
+
namespace sampleprof {
static const Target *getTarget(const ObjectFile *Obj) {
@@ -330,7 +335,7 @@ void ProfiledBinary::setPreferredTextSegmentAddresses(const ELFFile<ELFT> &Obj,
// However such info isn't available at post-processing time, assuming
// 4K page now. Note that we don't use EXEC_PAGESIZE from <linux/param.h>
// because we may build the tools on non-linux.
- uint64_t PageSize = 0x1000;
+ uint64_t PageSize = Pagesize;
for (const typename ELFT::Phdr &Phdr : PhdrRange) {
if (Phdr.p_type == ELF::PT_LOAD) {
if (!FirstLoadableAddress)
``````````
</details>
https://github.com/llvm/llvm-project/pull/164773
More information about the llvm-commits
mailing list