[clang] 8beed11 - [Driver][HIP] Do not default to `hidden` visibility for AMDGCNSPIRV (#191820)
via cfe-commits
cfe-commits at lists.llvm.org
Tue Apr 14 01:59:46 PDT 2026
Author: Alex Voicu
Date: 2026-04-14T09:59:41+01:00
New Revision: 8beed11857172b89af2cf4c790bd51beee905506
URL: https://github.com/llvm/llvm-project/commit/8beed11857172b89af2cf4c790bd51beee905506
DIFF: https://github.com/llvm/llvm-project/commit/8beed11857172b89af2cf4c790bd51beee905506.diff
LOG: [Driver][HIP] Do not default to `hidden` visibility for AMDGCNSPIRV (#191820)
SPIR-V cannot encode hidden for now, which leads to quirky errors. For
now we deal with this at run time, as part of JIT. Once SPIR-V learns
about `hidden` it'll be revisited.
Added:
Modified:
clang/lib/Driver/ToolChains/AMDGPU.cpp
clang/lib/Driver/ToolChains/HIPAMD.cpp
Removed:
################################################################################
diff --git a/clang/lib/Driver/ToolChains/AMDGPU.cpp b/clang/lib/Driver/ToolChains/AMDGPU.cpp
index 03bd88f0d4f47..b72d0e68f63f0 100644
--- a/clang/lib/Driver/ToolChains/AMDGPU.cpp
+++ b/clang/lib/Driver/ToolChains/AMDGPU.cpp
@@ -843,8 +843,10 @@ void AMDGPUToolChain::addClangTargetOptions(
Action::OffloadKind DeviceOffloadingKind) const {
// Default to "hidden" visibility, as object level linking will not be
// supported for the foreseeable future.
+ // TODO: remove the SPIR-V bypass once it can encode (hidden) visibility.
if (!DriverArgs.hasArg(options::OPT_fvisibility_EQ,
- options::OPT_fvisibility_ms_compat)) {
+ options::OPT_fvisibility_ms_compat) &&
+ !getEffectiveTriple().isSPIRV()) {
CC1Args.push_back("-fvisibility=hidden");
CC1Args.push_back("-fapply-global-visibility-to-externs");
}
diff --git a/clang/lib/Driver/ToolChains/HIPAMD.cpp b/clang/lib/Driver/ToolChains/HIPAMD.cpp
index b08f610b21a16..b4ff90c1d61f0 100644
--- a/clang/lib/Driver/ToolChains/HIPAMD.cpp
+++ b/clang/lib/Driver/ToolChains/HIPAMD.cpp
@@ -260,8 +260,10 @@ void HIPAMDToolChain::addClangTargetOptions(
// Default to "hidden" visibility, as object level linking will not be
// supported for the foreseeable future.
+ // TODO: remove the SPIR-V bypass once it can encode (hidden) visibility.
if (!DriverArgs.hasArg(options::OPT_fvisibility_EQ,
- options::OPT_fvisibility_ms_compat)) {
+ options::OPT_fvisibility_ms_compat) &&
+ !getEffectiveTriple().isSPIRV()) {
CC1Args.append({"-fvisibility=hidden"});
CC1Args.push_back("-fapply-global-visibility-to-externs");
}
More information about the cfe-commits
mailing list