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

Reply via email to