[libcxx-commits] [lld] [clang-tools-extra] [openmp] [flang] [libc] [libcxx] [llvm] [lldb] [compiler-rt] [clang] [PGO][OpenMP] Instrumentation for GPU devices (PR #76587)

Joseph Huber via libcxx-commits libcxx-commits at lists.llvm.org
Thu Jan 4 13:24:48 PST 2024


================
@@ -58,6 +60,22 @@ class GlobalTy {
   void setPtr(void *P) { Ptr = P; }
 };
 
+typedef void *IntPtrT;
+struct __llvm_profile_data {
+#define INSTR_PROF_DATA(Type, LLVMType, Name, Initializer) Type Name;
+#include "llvm/ProfileData/InstrProfData.inc"
+};
+
+/// PGO profiling data extracted from a GPU device
+struct GPUProfGlobals {
+  std::string names;
+  std::vector<std::vector<int64_t>> counts;
+  std::vector<__llvm_profile_data> data;
+  Triple targetTriple;
+
----------------
jhuber6 wrote:

These should probably use LLVM structs. E.g. `StringRef` is the name is a constant string with stable storage and `SmallVector`.

I'd really appreciate some descriptions of how this is supposed to look and how it interacts with the existing profile data.

https://github.com/llvm/llvm-project/pull/76587


More information about the libcxx-commits mailing list