[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