[PATCH] D154133: [amdgpu] start documenting amdgpu support by clang

Yaxun Liu via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Jun 30 06:05:57 PDT 2023


yaxunl updated this revision to Diff 536203.
yaxunl added a comment.

added `__AMDGCN_WAVEFRONT_SIZE__` and reordered


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D154133/new/

https://reviews.llvm.org/D154133

Files:
  clang/docs/AMDGPUSupport.rst


Index: clang/docs/AMDGPUSupport.rst
===================================================================
--- /dev/null
+++ clang/docs/AMDGPUSupport.rst
@@ -0,0 +1,63 @@
+.. raw:: html
+
+  <style type="text/css">
+    .none { background-color: #FFCCCC }
+    .part { background-color: #FFFF99 }
+    .good { background-color: #CCFF99 }
+  </style>
+
+.. role:: none
+.. role:: part
+.. role:: good
+
+.. contents::
+   :local:
+
+==============
+AMDGPU Support
+==============
+
+Clang supports OpenCL, HIP and OpenMP on amdgpu target.
+
+
+Predefined Macros
+=================
+
+
+.. list-table::
+   :header-rows: 1
+
+   * - Macro
+     - Description
+   * - ``__AMDGPU__``
+     - Indicates that the code is being compiled for an AMD GPU.
+   * - ``__AMDGCN__``
+     - Defined if the GPU target is AMDGCN.
+   * - ``__R600__``
+     - Defined if the GPU target is R600.
+   * - ``__<ArchName>__``
+     - Defined with the name of the architecture (e.g., ``__gfx906__`` for the gfx906 architecture).
+   * - ``__<GFXN>__``
+     - Defines the GFX family (e.g., for gfx906, this macro would be ``__GFX9__``).
+   * - ``__amdgcn_processor__``
+     - Defined with the processor name as a string (e.g., ``"gfx906"``).
+   * - ``__amdgcn_target_id__``
+     - Defined with the target ID as a string.
+   * - ``__amdgcn_feature_<feature-name>__``
+     - Defined for each supported target feature. The value is 1 if the feature is enabled and 0 if it is disabled. Allowed feature names are sramecc and xnack.
+   * - ``__AMDGCN_CUMODE__``
+     - Defines as 1 if the CU mode is enabled and 0 if the WGP mode is enabled.
+   * - ``__AMDGCN_UNSAFE_FP_ATOMICS__``
+     - Defined if unsafe floating-point atomics are allowed.
+   * - ``__AMDGCN_WAVEFRONT_SIZE__``
+     - Defines the wavefront size. Allowed values are 32 and 64.
+   * - ``__AMDGCN_WAVEFRONT_SIZE``
+     - Alias to ``__AMDGCN_WAVEFRONT_SIZE__``. To be deprecated.
+   * - ``__HAS_FMAF__``
+     - Defined if FMAF instruction is available (deprecated).
+   * - ``__HAS_LDEXPF__``
+     - Defined if LDEXPF instruction is available (deprecated).
+   * - ``__HAS_FP64__``
+     - Defined if FP64 instruction is available (deprecated).
+
+Please note that the specific architecture and feature names will vary depending on the GPU. Also, some macros are deprecated and may be removed in future releases.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D154133.536203.patch
Type: text/x-patch
Size: 2364 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20230630/cc11d2ee/attachment-0001.bin>


More information about the cfe-commits mailing list