[libc-commits] [libc] [libc] Fix GPU handling for unsupported backends (PR #92271)
Joseph Huber via libc-commits
libc-commits at lists.llvm.org
Wed May 15 07:37:34 PDT 2024
https://github.com/jhuber6 created https://github.com/llvm/llvm-project/pull/92271
Summary:
If the user does not have the selected backend enabled, we should still
be able to build the LLVM-IR an ddistribute it. This patch makes logic
to suppress tests if the backend can't build it, as well as removing a
flag for the building that's only present int he NVPTX backend.
>From 091cd13b908a9fe5759b875c7a1f3e983fafe1ac Mon Sep 17 00:00:00 2001
From: Joseph Huber <huberjn at outlook.com>
Date: Wed, 15 May 2024 09:27:46 -0500
Subject: [PATCH] [libc] Fix GPU handling for unsupported backends
Summary:
If the user does not have the selected backend enabled, we should still
be able to build the LLVM-IR an ddistribute it. This patch makes logic
to suppress tests if the backend can't build it, as well as removing a
flag for the building that's only present int he NVPTX backend.
---
libc/cmake/modules/LLVMLibCCompileOptionRules.cmake | 1 -
libc/cmake/modules/prepare_libc_gpu_build.cmake | 10 +++++++++-
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/libc/cmake/modules/LLVMLibCCompileOptionRules.cmake b/libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
index 5b3a10d55fed3..3bf429381d4af 100644
--- a/libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
+++ b/libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
@@ -101,7 +101,6 @@ function(_get_common_compile_options output_var flags)
if(LIBC_TARGET_ARCHITECTURE_IS_NVPTX)
list(APPEND compile_options "-Wno-unknown-cuda-version")
- list(APPEND compile_options "SHELL:-mllvm -nvptx-emit-init-fini-kernel=false")
list(APPEND compile_options "--cuda-feature=+ptx63")
if(LIBC_CUDA_ROOT)
list(APPEND compile_options "--cuda-path=${LIBC_CUDA_ROOT}")
diff --git a/libc/cmake/modules/prepare_libc_gpu_build.cmake b/libc/cmake/modules/prepare_libc_gpu_build.cmake
index 20aca16990fc6..88538caaa3bc5 100644
--- a/libc/cmake/modules/prepare_libc_gpu_build.cmake
+++ b/libc/cmake/modules/prepare_libc_gpu_build.cmake
@@ -76,7 +76,15 @@ elseif(LIBC_TARGET_ARCHITECTURE_IS_NVPTX)
endif()
set(gpu_test_architecture "")
-if(LIBC_GPU_TEST_ARCHITECTURE)
+if(DEFINED LLVM_TARGETS_TO_BUILD AND LIBC_TARGET_ARCHITECTURE_IS_AMDGPU
+ AND NOT "AMDGPU" IN_LIST LLVM_TARGETS_TO_BUILD)
+ set(LIBC_GPU_TESTS_DISABLED TRUE)
+ message(STATUS "AMDGPU backend is not available, tests will not be built")
+elseif(DEFINED LLVM_TARGETS_TO_BUILD AND LIBC_TARGET_ARCHITECTURE_IS_AMDGPU
+ AND NOT "NVPTX" IN_LIST LLVM_TARGETS_TO_BUILD)
+ set(LIBC_GPU_TESTS_DISABLED TRUE)
+ message(STATUS "NVPTX backend is not available, tests will not be built")
+elseif(LIBC_GPU_TEST_ARCHITECTURE)
set(LIBC_GPU_TESTS_DISABLED FALSE)
set(gpu_test_architecture ${LIBC_GPU_TEST_ARCHITECTURE})
message(STATUS "Using user-specified GPU architecture for testing: "
More information about the libc-commits
mailing list