OMPT callback support for target task, target data op, and target submit
Patch from John Mellor-Crummey <johnmc@rice.edu>
(With contributions from Dhruva Chakrabarti <Dhruva.Chakrabarti@amd.com>)
o Connect up libomp, libomptarget and AMDGPU device rtl
o Provide a callback class used to interact with a tool
o Update omp-tool.h.var from LLVM main to ensure it is fresh
o Update libomp sources for two purposes
- Adapt to new macros in omp-tools.h
- Add API used by libomptarget to extract task_data and target_task_data when needed to support OMPT EMI calls
o Integrate support for EMI and NONEMI target callbacks
o Target, data operation, and target submit callbacks added
This code does not reproduce the libomp control flow for in-llvm-tree and standalone build.
To use cmake variables from openmp/runtime, just make them visible in parent scope:
set(LIBOMP_HAVE_OMPT_SUPPORT ${LIBOMP_HAVE_OMPT_SUPPORT} PARENT_SCOPE)
see https://github.com/llvm/llvm-project/commit/3bc8ce5dd718beef0031bf4b070ac4026e6910d7#diff-01127988bc2b1599723b049e94ada3025063f4e0a7bac326aaf37b892a118fd1R332