[llvm-branch-commits] [compiler-rt] compiler-rt: Consolidate regex checks for amdgpu targets (PR #202281)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Mon Jun 8 01:03:14 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-pgo
Author: Matt Arsenault (arsenm)
<details>
<summary>Changes</summary>
In the future the triple naming scheme will change, and this
will help avoid repeating the same longer regex in all of these
places.
Co-Authored-By: Claude Sonnet 4.5 <noreply@<!-- -->anthropic.com>
---
Full diff: https://github.com/llvm/llvm-project/pull/202281.diff
8 Files Affected:
- (modified) compiler-rt/CMakeLists.txt (+3-3)
- (modified) compiler-rt/cmake/Modules/CompilerRTUtils.cmake (+1-1)
- (modified) compiler-rt/cmake/base-config-ix.cmake (+7-1)
- (modified) compiler-rt/cmake/config-ix.cmake (+1-1)
- (modified) compiler-rt/lib/builtins/CMakeLists.txt (+2-2)
- (modified) compiler-rt/lib/profile/CMakeLists.txt (+2-2)
- (modified) compiler-rt/test/builtins/CMakeLists.txt (+1-1)
- (modified) compiler-rt/test/ubsan_minimal/CMakeLists.txt (+1-1)
``````````diff
diff --git a/compiler-rt/CMakeLists.txt b/compiler-rt/CMakeLists.txt
index 54df32f3ab2c6..4aebcd46671d6 100644
--- a/compiler-rt/CMakeLists.txt
+++ b/compiler-rt/CMakeLists.txt
@@ -378,11 +378,11 @@ if("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "hexagon")
list(APPEND SANITIZER_COMMON_CFLAGS -fno-emulated-tls)
string(APPEND COMPILER_RT_TEST_COMPILER_CFLAGS " -fno-emulated-tls")
endif()
-if("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "amdgcn|nvptx|spirv64")
+if(COMPILER_RT_GPU_BUILD)
append_list_if(UBSAN_COMMON_SUPPORTED_ARCH -ffreestanding SANITIZER_COMMON_CFLAGS)
append_list_if(COMPILER_RT_HAS_NOGPULIB_FLAG -nogpulib SANITIZER_COMMON_CFLAGS)
append_list_if(COMPILER_RT_HAS_FLTO_FLAG -flto SANITIZER_COMMON_CFLAGS)
- if("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "amdgcn")
+ if(COMPILER_RT_TARGET_AMDGPU)
append_list_if(COMPILER_RT_HAS_CODE_OBJECT_VERSION_FLAG
"SHELL:-Xclang -mcode-object-version=none" SANITIZER_COMMON_CFLAGS)
endif()
@@ -403,7 +403,7 @@ append_list_if(COMPILER_RT_HAS_FVISIBILITY_HIDDEN_FLAG -fvisibility=hidden SANIT
if(NOT COMPILER_RT_HAS_FVISIBILITY_HIDDEN_FLAG)
append_list_if(COMPILER_RT_HAS_FVISIBILITY_INLINES_HIDDEN_FLAG -fvisibility-inlines-hidden SANITIZER_COMMON_CFLAGS)
endif()
-if(NOT "${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "amdgcn|nvptx|spirv64")
+if(NOT COMPILER_RT_GPU_BUILD)
append_list_if(COMPILER_RT_HAS_FNO_LTO_FLAG -fno-lto SANITIZER_COMMON_CFLAGS)
endif()
diff --git a/compiler-rt/cmake/Modules/CompilerRTUtils.cmake b/compiler-rt/cmake/Modules/CompilerRTUtils.cmake
index 89fa3e53e9141..031eabf1d46ca 100644
--- a/compiler-rt/cmake/Modules/CompilerRTUtils.cmake
+++ b/compiler-rt/cmake/Modules/CompilerRTUtils.cmake
@@ -424,7 +424,7 @@ macro(construct_compiler_rt_default_triple)
if(COMPILER_RT_DEFAULT_TARGET_ONLY)
# Pass the necessary flags to make flag detection work.
- if("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "amdgcn")
+ if(COMPILER_RT_TARGET_AMDGPU)
set(COMPILER_RT_GPU_BUILD ON)
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -nogpulib")
elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "nvptx|spirv64")
diff --git a/compiler-rt/cmake/base-config-ix.cmake b/compiler-rt/cmake/base-config-ix.cmake
index ebb7e8de81daf..1b66dec9a6c03 100644
--- a/compiler-rt/cmake/base-config-ix.cmake
+++ b/compiler-rt/cmake/base-config-ix.cmake
@@ -201,6 +201,12 @@ if(WIN32 AND NOT MINGW AND NOT CYGWIN)
endif()
macro(test_targets)
+ if("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "amdgpu|amdgcn")
+ set(COMPILER_RT_TARGET_AMDGPU TRUE)
+ else()
+ set(COMPILER_RT_TARGET_AMDGPU FALSE)
+ endif()
+
# Find and run MSVC (not clang-cl) and get its version. This will tell clang-cl
# what version of MSVC to pretend to be so that the STL works.
set(MSVC_VERSION_FLAG "")
@@ -243,7 +249,7 @@ macro(test_targets)
test_target_arch(x86_64 "" "")
endif()
endif()
- elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "amdgcn")
+ elseif(COMPILER_RT_TARGET_AMDGPU)
test_target_arch(amdgcn "" "--target=amdgcn-amd-amdhsa" "-nogpulib"
"-flto" "-Xclang -mcode-object-version=none")
elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "hexagon")
diff --git a/compiler-rt/cmake/config-ix.cmake b/compiler-rt/cmake/config-ix.cmake
index d1d89c0a29f8a..3db153e72cbb7 100644
--- a/compiler-rt/cmake/config-ix.cmake
+++ b/compiler-rt/cmake/config-ix.cmake
@@ -894,7 +894,7 @@ endif()
if (UBSAN_SUPPORTED_ARCH AND
(OS_NAME MATCHES "Linux|FreeBSD|NetBSD|Android|Darwin|SunOS" OR
- "${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "amdgcn|nvptx|spirv64"))
+ COMPILER_RT_GPU_BUILD))
set(COMPILER_RT_HAS_UBSAN_MINIMAL TRUE)
else()
set(COMPILER_RT_HAS_UBSAN_MINIMAL FALSE)
diff --git a/compiler-rt/lib/builtins/CMakeLists.txt b/compiler-rt/lib/builtins/CMakeLists.txt
index 1646b7077d7d1..e0ad83b2bdb30 100644
--- a/compiler-rt/lib/builtins/CMakeLists.txt
+++ b/compiler-rt/lib/builtins/CMakeLists.txt
@@ -1007,13 +1007,13 @@ else ()
endif()
# Directly targeting the GPU requires a few extra flags.
- if("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "amdgcn|nvptx|spirv64")
+ if(COMPILER_RT_GPU_BUILD)
append_list_if(COMPILER_RT_HAS_FFREESTANDING_FLAG -ffreestanding BUILTIN_CFLAGS)
append_list_if(COMPILER_RT_HAS_NOGPULIB_FLAG -nogpulib BUILTIN_CFLAGS)
append_list_if(COMPILER_RT_HAS_FLTO_FLAG -flto BUILTIN_CFLAGS)
# AMDGPU targets want to use a generic ABI.
- if("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "amdgcn")
+ if(COMPILER_RT_TARGET_AMDGPU)
append_list_if(COMPILER_RT_HAS_CODE_OBJECT_VERSION_FLAG
"SHELL:-Xclang -mcode-object-version=none" BUILTIN_CFLAGS)
endif()
diff --git a/compiler-rt/lib/profile/CMakeLists.txt b/compiler-rt/lib/profile/CMakeLists.txt
index db1bf6fdabafe..4c99f2c8881d5 100644
--- a/compiler-rt/lib/profile/CMakeLists.txt
+++ b/compiler-rt/lib/profile/CMakeLists.txt
@@ -155,11 +155,11 @@ if(COMPILER_RT_PROFILE_BAREMETAL)
-DCOMPILER_RT_PROFILE_BAREMETAL=1)
endif()
-if("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "amdgcn|nvptx")
+if(COMPILER_RT_TARGET_AMDGPU OR "${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "nvptx")
append_list_if(COMPILER_RT_HAS_FFREESTANDING_FLAG -ffreestanding EXTRA_FLAGS)
append_list_if(COMPILER_RT_HAS_NOGPULIB_FLAG -nogpulib EXTRA_FLAGS)
append_list_if(COMPILER_RT_HAS_FLTO_FLAG -flto EXTRA_FLAGS)
- if("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "amdgcn")
+ if(COMPILER_RT_TARGET_AMDGPU)
append_list_if(COMPILER_RT_HAS_CODE_OBJECT_VERSION_FLAG
"SHELL:-Xclang -mcode-object-version=none" EXTRA_FLAGS)
elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "nvptx")
diff --git a/compiler-rt/test/builtins/CMakeLists.txt b/compiler-rt/test/builtins/CMakeLists.txt
index c4f553b839f86..16349f221463e 100644
--- a/compiler-rt/test/builtins/CMakeLists.txt
+++ b/compiler-rt/test/builtins/CMakeLists.txt
@@ -54,7 +54,7 @@ foreach(arch ${BUILTIN_TEST_ARCH})
get_test_cc_for_arch(${arch} BUILTINS_TEST_TARGET_CC BUILTINS_TEST_TARGET_CFLAGS)
if(COMPILER_RT_GPU_BUILD)
- if("${arch}" MATCHES "amdgcn")
+ if(COMPILER_RT_TARGET_AMDGPU)
list(APPEND BUILTINS_TEST_TARGET_CFLAGS
-Wno-multi-gpu -flto -mcpu=native -nogpulib -startfiles -stdlib)
elseif("${arch}" MATCHES "nvptx")
diff --git a/compiler-rt/test/ubsan_minimal/CMakeLists.txt b/compiler-rt/test/ubsan_minimal/CMakeLists.txt
index cb59304d00d07..cf978ddc24bf5 100644
--- a/compiler-rt/test/ubsan_minimal/CMakeLists.txt
+++ b/compiler-rt/test/ubsan_minimal/CMakeLists.txt
@@ -15,7 +15,7 @@ foreach(arch ${UBSAN_TEST_ARCH})
get_test_cc_for_arch(${arch} UBSAN_TEST_TARGET_CC UBSAN_TEST_TARGET_CFLAGS)
if(COMPILER_RT_GPU_BUILD)
- if("${arch}" MATCHES "amdgcn")
+ if(COMPILER_RT_TARGET_AMDGPU)
list(APPEND UBSAN_TEST_TARGET_CFLAGS
-Wno-multi-gpu -flto -mcpu=native -nogpulib -startfiles -stdlib)
elseif("${arch}" MATCHES "nvptx")
``````````
</details>
https://github.com/llvm/llvm-project/pull/202281
More information about the llvm-branch-commits
mailing list