[flang-commits] [flang] [libc] [llvm] [clang] [lld] [lldb] [compiler-rt] [clang-tools-extra] [libcxx] [openmp] [PGO][OpenMP] Instrumentation for GPU devices (PR #76587)
Ethan Luis McDonough via flang-commits
flang-commits at lists.llvm.org
Mon Jan 8 18:10:27 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;
+
----------------
EthanLuisMcDonough wrote:
I can't seem to use `SmallVector` for `__llvm_profile_data` because many of its defined fields are const qualified and it needs an assignment operator definition. I'm able to use `std::remove_const`, but that feels kind of hack-y. Not sure if the best solution is to use `std::vector`, `std::remove_const`, or remove the const qualifiers in [InstrProfData.inc](https://github.com/llvm/llvm-project/blob/main/llvm/include/llvm/ProfileData/InstrProfData.inc).
https://github.com/llvm/llvm-project/pull/76587
More information about the flang-commits
mailing list