[PATCH] D151023: [llvm-exegesis] Add Target Memory Utility Functions
Clement Courbet via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 16 01:42:18 PDT 2023
courbet added a comment.
General comment: all these blindly clobber registers (which is an issue, see my comment in D151025 <https://reviews.llvm.org/D151025>). Should we always save and restore registers ?
================
Comment at: llvm/tools/llvm-exegesis/lib/X86/Target.cpp:990
+ std::vector<MCInst> &GeneratedCode) {
+ int PageSizeBits = static_cast<int>(round(log2(getpagesize())));
+ // Round down to the nearest page by getting rid of the least significant bits
----------------
`PageSizeShift` ?
================
Comment at: llvm/tools/llvm-exegesis/lib/X86/Target.cpp:994-1001
+ GeneratedCode.push_back(MCInstBuilder(X86::SHR64ri)
+ .addReg(Register)
+ .addReg(Register)
+ .addImm(PageSizeBits));
+ GeneratedCode.push_back(MCInstBuilder(X86::SHL64ri)
+ .addReg(Register)
+ .addReg(Register)
----------------
Another, maybe simpler option is: `AND64ri register, -page_size`
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D151023/new/
https://reviews.llvm.org/D151023
More information about the llvm-commits
mailing list