[clang] [HIP] Document func ptr and virtual func (PR #68126)

Artem Belevich via cfe-commits cfe-commits at lists.llvm.org
Wed Oct 4 10:52:04 PDT 2023


================
@@ -176,3 +176,65 @@ Predefined Macros
    * - ``HIP_API_PER_THREAD_DEFAULT_STREAM``
      - Alias to ``__HIP_API_PER_THREAD_DEFAULT_STREAM__``. Deprecated.
 
+Function Pointers Support in Clang with HIP
+===========================================
+
+Function pointers' support varies with the usage mode in Clang with HIP. The following table provides an overview of the support status across different use-cases and modes.
+
+.. list-table:: Function Pointers Support Overview
+   :widths: 25 25 25
+   :header-rows: 1
+
+   * - Use Case
+     - ``-fno-gpu-rdc`` Mode (default)
+     - ``-fgpu-rdc`` Mode
+   * - Defined and used in the same TU
+     - Supported
+     - Supported
+   * - Defined in one TU and used in another TU
+     - Not Supported
+     - Supported
+
+In the ``-fno-gpu-rdc`` mode, the compiler calculates the resource usage of kernels based only on functions present within the same Translation Unit (TU). This mode does not support the use of function pointers defined in a different TU due to the possibility of incorrect resource usage calculations, leading to undefined behavior.
----------------
Artem-B wrote:

I'd mention that in `-fno-gpu-rdc` each TU compiles to a fully linked GPU executable, vs an object file with `-fgpu-rdc`. This should give more context for reasoning about accessibility of various data bits.


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


More information about the cfe-commits mailing list