[llvm-branch-commits] [clang] clang/AMDGPU: Stop checking for finite only and unsafe math control libraries (PR #182865)

Matt Arsenault via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Mon Feb 23 07:07:15 PST 2026


https://github.com/arsenm created https://github.com/llvm/llvm-project/pull/182865

These will be imminently deleted. Just ignore them if they are not present.

>From 4418e205453775e6903817922fbf569b2ab8aaf4 Mon Sep 17 00:00:00 2001
From: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: Mon, 23 Feb 2026 15:28:44 +0100
Subject: [PATCH] clang/AMDGPU: Stop checking for finite only and unsafe math
 control libraries

These will be imminently deleted. Just ignore them if they are not present.
---
 clang/include/clang/Driver/RocmInstallationDetector.h      | 7 +++----
 clang/lib/Driver/ToolChains/AMDGPU.cpp                     | 6 ++++--
 .../Inputs/rocm-no-math-opt-libs/amdgcn/bitcode/asanrtl.bc | 0
 .../Inputs/rocm-no-math-opt-libs/amdgcn/bitcode/hip.bc     | 0
 .../Inputs/rocm-no-math-opt-libs/amdgcn/bitcode/ockl.bc    | 0
 .../amdgcn/bitcode/oclc_abi_version_600.bc                 | 0
 .../amdgcn/bitcode/oclc_isa_version_900.bc                 | 0
 .../amdgcn/bitcode/oclc_wavefrontsize64_off.bc             | 0
 .../amdgcn/bitcode/oclc_wavefrontsize64_on.bc              | 0
 .../Inputs/rocm-no-math-opt-libs/amdgcn/bitcode/ocml.bc    | 0
 .../Inputs/rocm-no-math-opt-libs/amdgcn/bitcode/opencl.bc  | 0
 clang/test/Driver/rocm-device-libs.cl                      | 6 ++++++
 12 files changed, 13 insertions(+), 6 deletions(-)
 create mode 100644 clang/test/Driver/Inputs/rocm-no-math-opt-libs/amdgcn/bitcode/asanrtl.bc
 create mode 100644 clang/test/Driver/Inputs/rocm-no-math-opt-libs/amdgcn/bitcode/hip.bc
 create mode 100644 clang/test/Driver/Inputs/rocm-no-math-opt-libs/amdgcn/bitcode/ockl.bc
 create mode 100644 clang/test/Driver/Inputs/rocm-no-math-opt-libs/amdgcn/bitcode/oclc_abi_version_600.bc
 create mode 100644 clang/test/Driver/Inputs/rocm-no-math-opt-libs/amdgcn/bitcode/oclc_isa_version_900.bc
 create mode 100644 clang/test/Driver/Inputs/rocm-no-math-opt-libs/amdgcn/bitcode/oclc_wavefrontsize64_off.bc
 create mode 100644 clang/test/Driver/Inputs/rocm-no-math-opt-libs/amdgcn/bitcode/oclc_wavefrontsize64_on.bc
 create mode 100644 clang/test/Driver/Inputs/rocm-no-math-opt-libs/amdgcn/bitcode/ocml.bc
 create mode 100644 clang/test/Driver/Inputs/rocm-no-math-opt-libs/amdgcn/bitcode/opencl.bc

diff --git a/clang/include/clang/Driver/RocmInstallationDetector.h b/clang/include/clang/Driver/RocmInstallationDetector.h
index b20dddbd045ea..ab669ef315361 100644
--- a/clang/include/clang/Driver/RocmInstallationDetector.h
+++ b/clang/include/clang/Driver/RocmInstallationDetector.h
@@ -157,8 +157,7 @@ class RocmInstallationDetector {
 
   bool allGenericLibsValid() const {
     return !OCML.empty() && !OCKL.empty() && !OpenCL.empty() &&
-           WavefrontSize64.isValid() && FiniteOnly.isValid() &&
-           UnsafeMath.isValid();
+           WavefrontSize64.isValid();
   }
 
   void scanLibDevicePath(llvm::StringRef Path);
@@ -242,11 +241,11 @@ class RocmInstallationDetector {
   }
 
   StringRef getFiniteOnlyPath(bool Enabled) const {
-    return FiniteOnly.get(Enabled);
+    return FiniteOnly.isValid() ? FiniteOnly.get(Enabled) : "";
   }
 
   StringRef getUnsafeMathPath(bool Enabled) const {
-    return UnsafeMath.get(Enabled);
+    return UnsafeMath.isValid() ? UnsafeMath.get(Enabled) : "";
   }
 
   StringRef getABIVersionPath(DeviceLibABIVersion ABIVer) const {
diff --git a/clang/lib/Driver/ToolChains/AMDGPU.cpp b/clang/lib/Driver/ToolChains/AMDGPU.cpp
index fc78ff02ef214..95f14640937ea 100644
--- a/clang/lib/Driver/ToolChains/AMDGPU.cpp
+++ b/clang/lib/Driver/ToolChains/AMDGPU.cpp
@@ -1028,8 +1028,10 @@ RocmInstallationDetector::getCommonBitcodeLibs(
 
   auto AddBCLib = [&](ToolChain::BitCodeLibraryInfo BCLib,
                       bool Internalize = true) {
-    BCLib.ShouldInternalize = Internalize;
-    BCLibs.emplace_back(BCLib);
+    if (!BCLib.Path.empty()) {
+      BCLib.ShouldInternalize = Internalize;
+      BCLibs.emplace_back(BCLib);
+    }
   };
   auto AddSanBCLibs = [&]() {
     if (Pref.GPUSan)
diff --git a/clang/test/Driver/Inputs/rocm-no-math-opt-libs/amdgcn/bitcode/asanrtl.bc b/clang/test/Driver/Inputs/rocm-no-math-opt-libs/amdgcn/bitcode/asanrtl.bc
new file mode 100644
index 0000000000000..e69de29bb2d1d
diff --git a/clang/test/Driver/Inputs/rocm-no-math-opt-libs/amdgcn/bitcode/hip.bc b/clang/test/Driver/Inputs/rocm-no-math-opt-libs/amdgcn/bitcode/hip.bc
new file mode 100644
index 0000000000000..e69de29bb2d1d
diff --git a/clang/test/Driver/Inputs/rocm-no-math-opt-libs/amdgcn/bitcode/ockl.bc b/clang/test/Driver/Inputs/rocm-no-math-opt-libs/amdgcn/bitcode/ockl.bc
new file mode 100644
index 0000000000000..e69de29bb2d1d
diff --git a/clang/test/Driver/Inputs/rocm-no-math-opt-libs/amdgcn/bitcode/oclc_abi_version_600.bc b/clang/test/Driver/Inputs/rocm-no-math-opt-libs/amdgcn/bitcode/oclc_abi_version_600.bc
new file mode 100644
index 0000000000000..e69de29bb2d1d
diff --git a/clang/test/Driver/Inputs/rocm-no-math-opt-libs/amdgcn/bitcode/oclc_isa_version_900.bc b/clang/test/Driver/Inputs/rocm-no-math-opt-libs/amdgcn/bitcode/oclc_isa_version_900.bc
new file mode 100644
index 0000000000000..e69de29bb2d1d
diff --git a/clang/test/Driver/Inputs/rocm-no-math-opt-libs/amdgcn/bitcode/oclc_wavefrontsize64_off.bc b/clang/test/Driver/Inputs/rocm-no-math-opt-libs/amdgcn/bitcode/oclc_wavefrontsize64_off.bc
new file mode 100644
index 0000000000000..e69de29bb2d1d
diff --git a/clang/test/Driver/Inputs/rocm-no-math-opt-libs/amdgcn/bitcode/oclc_wavefrontsize64_on.bc b/clang/test/Driver/Inputs/rocm-no-math-opt-libs/amdgcn/bitcode/oclc_wavefrontsize64_on.bc
new file mode 100644
index 0000000000000..e69de29bb2d1d
diff --git a/clang/test/Driver/Inputs/rocm-no-math-opt-libs/amdgcn/bitcode/ocml.bc b/clang/test/Driver/Inputs/rocm-no-math-opt-libs/amdgcn/bitcode/ocml.bc
new file mode 100644
index 0000000000000..e69de29bb2d1d
diff --git a/clang/test/Driver/Inputs/rocm-no-math-opt-libs/amdgcn/bitcode/opencl.bc b/clang/test/Driver/Inputs/rocm-no-math-opt-libs/amdgcn/bitcode/opencl.bc
new file mode 100644
index 0000000000000..e69de29bb2d1d
diff --git a/clang/test/Driver/rocm-device-libs.cl b/clang/test/Driver/rocm-device-libs.cl
index 4741862be266e..232f36df38768 100644
--- a/clang/test/Driver/rocm-device-libs.cl
+++ b/clang/test/Driver/rocm-device-libs.cl
@@ -9,6 +9,12 @@
 // RUN: 2>&1 | FileCheck  --check-prefixes=COMMON,COMMON-DEFAULT,GFX900,WAVE64 %s
 
 
+// RUN: %clang -### -target amdgcn-amd-amdhsa \
+// RUN:   -x cl -mcpu=gfx900 \
+// RUN:   --rocm-path=%S/Inputs/rocm-no-math-opt-libs \
+// RUN:   %s \
+// RUN: 2>&1 | FileCheck  --check-prefixes=COMMON,GFX900,WAVE64 %s
+
 
 // Make sure the different denormal default is respected for gfx8
 // RUN: %clang -### -target amdgcn-amd-amdhsa \



More information about the llvm-branch-commits mailing list