https://github.com/wenju-he updated https://github.com/llvm/llvm-project/pull/201480
>From 502f815015aafb9ff23aec889387639d6689b9be Mon Sep 17 00:00:00 2001 From: Wenju He <[email protected]> Date: Wed, 3 Jun 2026 10:15:16 +0200 Subject: [PATCH 1/2] [libclc][CMake] Add cmake cache files This simplifies cmake configuration without need to pass verbose variables in cmake command line. Settings in cache file can still be overriden by passing `-D` flags. Update `libclc/README.md` to document the usage. --- libclc/README.md | 26 ++++++++++++++++++- libclc/cmake/caches/all-targets.cmake | 21 +++++++++++++++ .../cmake/caches/amdgcn-amd-amdhsa-llvm.cmake | 4 +++ libclc/cmake/caches/nvptx64-nvidia-cuda.cmake | 4 +++ libclc/cmake/caches/spirv-vulkan.cmake | 4 +++ libclc/cmake/caches/spirv.cmake | 4 +++ 6 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 libclc/cmake/caches/all-targets.cmake create mode 100644 libclc/cmake/caches/amdgcn-amd-amdhsa-llvm.cmake create mode 100644 libclc/cmake/caches/nvptx64-nvidia-cuda.cmake create mode 100644 libclc/cmake/caches/spirv-vulkan.cmake create mode 100644 libclc/cmake/caches/spirv.cmake diff --git a/libclc/README.md b/libclc/README.md index 54429d71b3e32..69d1c9b25ea69 100644 --- a/libclc/README.md +++ b/libclc/README.md @@ -33,6 +33,29 @@ Select the targets to build with `LLVM_RUNTIME_TARGETS`, and enable libclc for each selected target with the matching `RUNTIMES_<target-triple>_LLVM_ENABLE_RUNTIMES` cache entry. +#### Using CMake cache files + +CMake cache files for target build are provided under `libclc/cmake/caches/`. +Pass one with `-C` to avoid setting each variable manually: + +| Cache file | Targets | +|--- |--- | +| `amdgcn-amd-amdhsa-llvm.cmake`| AMDGPU | +| `nvptx64-nvidia-cuda.cmake` | NVPTX64 | +| `spirv.cmake` | SPIR-V | +| `spirv-vulkan.cmake` | Vulkan (clspv) | +| `all-targets.cmake` | All of the above | + + +For example, from the root of the `llvm-project` repository: +``` +cmake -C libclc/cmake/caches/amdgcn-amd-amdhsa-llvm.cmake -G Ninja -B build llvm +``` + +The cache file sets `LLVM_ENABLE_PROJECTS`, `LLVM_TARGETS_TO_BUILD`, +`LLVM_RUNTIME_TARGETS`, and all required `RUNTIMES_*` entries. +Additional `-D` flags can still be appended to override individual settings. + #### Configure for the AMDGPU target ``` cd llvm-project @@ -53,8 +76,9 @@ cmake ../llvm -G Ninja -DLLVM_ENABLE_PROJECTS="clang" -DCMAKE_BUILD_TYPE=Release #### Configure for Vulkan (clspv) targets ``` cmake ../llvm -G Ninja -DLLVM_ENABLE_PROJECTS="clang" -DCMAKE_BUILD_TYPE=Release \ + -DRUNTIMES_spirv32-unknown-vulkan_LLVM_ENABLE_RUNTIMES=libclc \ -DRUNTIMES_spirv64-unknown-vulkan_LLVM_ENABLE_RUNTIMES=libclc \ - -DLLVM_RUNTIME_TARGETS="spirv64-unknown-vulkan" + -DLLVM_RUNTIME_TARGETS="spirv32-unknown-vulkan;spirv64-unknown-vulkan" ``` #### Configure for SPIR-V targets diff --git a/libclc/cmake/caches/all-targets.cmake b/libclc/cmake/caches/all-targets.cmake new file mode 100644 index 0000000000000..7f8cc98461912 --- /dev/null +++ b/libclc/cmake/caches/all-targets.cmake @@ -0,0 +1,21 @@ +set(LLVM_ENABLE_PROJECTS "clang" CACHE STRING "") +set(LLVM_TARGETS_TO_BUILD "AMDGPU;NVPTX" CACHE STRING "") + +set(LLVM_RUNTIME_TARGETS + amdgcn-amd-amdhsa-llvm + nvptx64-nvidia-cuda + spirv32-unknown-unknown + spirv64-unknown-unknown + spirv32-unknown-vulkan + spirv64-unknown-vulkan + CACHE STRING "") + +set(RUNTIMES_amdgcn-amd-amdhsa-llvm_LLVM_ENABLE_RUNTIMES "libclc" CACHE STRING "") + +set(RUNTIMES_nvptx64-nvidia-cuda_LLVM_ENABLE_RUNTIMES "libclc" CACHE STRING "") + +set(RUNTIMES_spirv32-unknown-unknown_LLVM_ENABLE_RUNTIMES "libclc" CACHE STRING "") +set(RUNTIMES_spirv64-unknown-unknown_LLVM_ENABLE_RUNTIMES "libclc" CACHE STRING "") + +set(RUNTIMES_spirv32-unknown-vulkan_LLVM_ENABLE_RUNTIMES "libclc" CACHE STRING "") +set(RUNTIMES_spirv64-unknown-vulkan_LLVM_ENABLE_RUNTIMES "libclc" CACHE STRING "") diff --git a/libclc/cmake/caches/amdgcn-amd-amdhsa-llvm.cmake b/libclc/cmake/caches/amdgcn-amd-amdhsa-llvm.cmake new file mode 100644 index 0000000000000..d19f413a4d80a --- /dev/null +++ b/libclc/cmake/caches/amdgcn-amd-amdhsa-llvm.cmake @@ -0,0 +1,4 @@ +set(LLVM_ENABLE_PROJECTS "clang" CACHE STRING "") +set(LLVM_TARGETS_TO_BUILD "AMDGPU" CACHE STRING "") +set(LLVM_RUNTIME_TARGETS "amdgcn-amd-amdhsa-llvm" CACHE STRING "") +set(RUNTIMES_amdgcn-amd-amdhsa-llvm_LLVM_ENABLE_RUNTIMES "libclc" CACHE STRING "") diff --git a/libclc/cmake/caches/nvptx64-nvidia-cuda.cmake b/libclc/cmake/caches/nvptx64-nvidia-cuda.cmake new file mode 100644 index 0000000000000..a87ec4a0930b3 --- /dev/null +++ b/libclc/cmake/caches/nvptx64-nvidia-cuda.cmake @@ -0,0 +1,4 @@ +set(LLVM_ENABLE_PROJECTS "clang" CACHE STRING "") +set(LLVM_TARGETS_TO_BUILD "NVPTX" CACHE STRING "") +set(LLVM_RUNTIME_TARGETS "nvptx64-nvidia-cuda" CACHE STRING "") +set(RUNTIMES_nvptx64-nvidia-cuda_LLVM_ENABLE_RUNTIMES "libclc" CACHE STRING "") diff --git a/libclc/cmake/caches/spirv-vulkan.cmake b/libclc/cmake/caches/spirv-vulkan.cmake new file mode 100644 index 0000000000000..172c4c32a5f12 --- /dev/null +++ b/libclc/cmake/caches/spirv-vulkan.cmake @@ -0,0 +1,4 @@ +set(LLVM_ENABLE_PROJECTS "clang" CACHE STRING "") +set(LLVM_RUNTIME_TARGETS "spirv32-unknown-vulkan;spirv64-unknown-vulkan" CACHE STRING "") +set(RUNTIMES_spirv32-unknown-vulkan_LLVM_ENABLE_RUNTIMES "libclc" CACHE STRING "") +set(RUNTIMES_spirv64-unknown-vulkan_LLVM_ENABLE_RUNTIMES "libclc" CACHE STRING "") diff --git a/libclc/cmake/caches/spirv.cmake b/libclc/cmake/caches/spirv.cmake new file mode 100644 index 0000000000000..03d92f12b357e --- /dev/null +++ b/libclc/cmake/caches/spirv.cmake @@ -0,0 +1,4 @@ +set(LLVM_ENABLE_PROJECTS "clang" CACHE STRING "") +set(LLVM_RUNTIME_TARGETS "spirv32-unknown-unknown;spirv64-unknown-unknown" CACHE STRING "") +set(RUNTIMES_spirv32-unknown-unknown_LLVM_ENABLE_RUNTIMES "libclc" CACHE STRING "") +set(RUNTIMES_spirv64-unknown-unknown_LLVM_ENABLE_RUNTIMES "libclc" CACHE STRING "") >From 7893c7dcb07199209756d405f6ffa2f77b780705 Mon Sep 17 00:00:00 2001 From: Wenju He <[email protected]> Date: Wed, 5 Aug 2026 09:17:46 +0200 Subject: [PATCH 2/2] drop LLVM_TARGETS_TO_BUILD, add RUNTIMES_spirv64-unknown-unknown_LIBCLC_USE_SPIRV_BACKEND --- libclc/README.md | 4 ++-- libclc/cmake/caches/all-targets.cmake | 3 ++- libclc/cmake/caches/amdgcn-amd-amdhsa-llvm.cmake | 1 - libclc/cmake/caches/nvptx64-nvidia-cuda.cmake | 1 - libclc/cmake/caches/spirv.cmake | 2 ++ 5 files changed, 6 insertions(+), 5 deletions(-) diff --git a/libclc/README.md b/libclc/README.md index 69d1c9b25ea69..359cbc45f6be0 100644 --- a/libclc/README.md +++ b/libclc/README.md @@ -52,8 +52,8 @@ For example, from the root of the `llvm-project` repository: cmake -C libclc/cmake/caches/amdgcn-amd-amdhsa-llvm.cmake -G Ninja -B build llvm ``` -The cache file sets `LLVM_ENABLE_PROJECTS`, `LLVM_TARGETS_TO_BUILD`, -`LLVM_RUNTIME_TARGETS`, and all required `RUNTIMES_*` entries. +The cache file sets `LLVM_ENABLE_PROJECTS`, `LLVM_RUNTIME_TARGETS`, and all +required `RUNTIMES_*` entries. Additional `-D` flags can still be appended to override individual settings. #### Configure for the AMDGPU target diff --git a/libclc/cmake/caches/all-targets.cmake b/libclc/cmake/caches/all-targets.cmake index 7f8cc98461912..21d497d4467d3 100644 --- a/libclc/cmake/caches/all-targets.cmake +++ b/libclc/cmake/caches/all-targets.cmake @@ -1,5 +1,4 @@ set(LLVM_ENABLE_PROJECTS "clang" CACHE STRING "") -set(LLVM_TARGETS_TO_BUILD "AMDGPU;NVPTX" CACHE STRING "") set(LLVM_RUNTIME_TARGETS amdgcn-amd-amdhsa-llvm @@ -14,6 +13,8 @@ set(RUNTIMES_amdgcn-amd-amdhsa-llvm_LLVM_ENABLE_RUNTIMES "libclc" CACHE STRING " set(RUNTIMES_nvptx64-nvidia-cuda_LLVM_ENABLE_RUNTIMES "libclc" CACHE STRING "") +set(RUNTIMES_spirv64-unknown-unknown_LIBCLC_USE_SPIRV_BACKEND ON CACHE BOOL "") +set(RUNTIMES_spirv32-unknown-unknown_LIBCLC_USE_SPIRV_BACKEND ON CACHE BOOL "") set(RUNTIMES_spirv32-unknown-unknown_LLVM_ENABLE_RUNTIMES "libclc" CACHE STRING "") set(RUNTIMES_spirv64-unknown-unknown_LLVM_ENABLE_RUNTIMES "libclc" CACHE STRING "") diff --git a/libclc/cmake/caches/amdgcn-amd-amdhsa-llvm.cmake b/libclc/cmake/caches/amdgcn-amd-amdhsa-llvm.cmake index d19f413a4d80a..fd9b6816cab88 100644 --- a/libclc/cmake/caches/amdgcn-amd-amdhsa-llvm.cmake +++ b/libclc/cmake/caches/amdgcn-amd-amdhsa-llvm.cmake @@ -1,4 +1,3 @@ set(LLVM_ENABLE_PROJECTS "clang" CACHE STRING "") -set(LLVM_TARGETS_TO_BUILD "AMDGPU" CACHE STRING "") set(LLVM_RUNTIME_TARGETS "amdgcn-amd-amdhsa-llvm" CACHE STRING "") set(RUNTIMES_amdgcn-amd-amdhsa-llvm_LLVM_ENABLE_RUNTIMES "libclc" CACHE STRING "") diff --git a/libclc/cmake/caches/nvptx64-nvidia-cuda.cmake b/libclc/cmake/caches/nvptx64-nvidia-cuda.cmake index a87ec4a0930b3..031ccddcbbeb7 100644 --- a/libclc/cmake/caches/nvptx64-nvidia-cuda.cmake +++ b/libclc/cmake/caches/nvptx64-nvidia-cuda.cmake @@ -1,4 +1,3 @@ set(LLVM_ENABLE_PROJECTS "clang" CACHE STRING "") -set(LLVM_TARGETS_TO_BUILD "NVPTX" CACHE STRING "") set(LLVM_RUNTIME_TARGETS "nvptx64-nvidia-cuda" CACHE STRING "") set(RUNTIMES_nvptx64-nvidia-cuda_LLVM_ENABLE_RUNTIMES "libclc" CACHE STRING "") diff --git a/libclc/cmake/caches/spirv.cmake b/libclc/cmake/caches/spirv.cmake index 03d92f12b357e..9287668492015 100644 --- a/libclc/cmake/caches/spirv.cmake +++ b/libclc/cmake/caches/spirv.cmake @@ -1,4 +1,6 @@ set(LLVM_ENABLE_PROJECTS "clang" CACHE STRING "") set(LLVM_RUNTIME_TARGETS "spirv32-unknown-unknown;spirv64-unknown-unknown" CACHE STRING "") +set(RUNTIMES_spirv64-unknown-unknown_LIBCLC_USE_SPIRV_BACKEND ON CACHE BOOL "") +set(RUNTIMES_spirv32-unknown-unknown_LIBCLC_USE_SPIRV_BACKEND ON CACHE BOOL "") set(RUNTIMES_spirv32-unknown-unknown_LLVM_ENABLE_RUNTIMES "libclc" CACHE STRING "") set(RUNTIMES_spirv64-unknown-unknown_LLVM_ENABLE_RUNTIMES "libclc" CACHE STRING "") _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
