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 cl::desc("Generate the profile for Linux kernel binary."), cl::cat(ProfGenCategory)); +static cl::opt + 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 &Obj, // However such info isn't available at post-processing time, assuming // 4K page now. Note that we don't use EXEC_PAGESIZE from // 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)