Author: Alex Voicu
Date: 2026-10-05T16:48:06Z
New Revision: 1dafb43e47223db435abcbc6bf5aeffa80f09ff9

URL: 
https://github.com/llvm/llvm-project/commit/1dafb43e47223db435abcbc6bf5aeffa80f09ff9
DIFF: 
https://github.com/llvm/llvm-project/commit/1dafb43e47223db435abcbc6bf5aeffa80f09ff9.diff

LOG: [NFC][HIP][SPIRV] Rework `-spirv-preserve-auxdata` handling. (#227875)

The way we were using to (unconditionally) enable this has been silently
inert since switching to the new driver / all things going through
`clang-linker-wrapper`. It was also a bit suspect / sneaky in general.
Pivot it to be controlled based on encountering the AMD vendor type.

Added: 
    

Modified: 
    clang/lib/Driver/ToolChains/HIPAMD.cpp
    clang/test/Driver/spirv-amd-toolchain.c
    llvm/lib/Target/SPIRV/SPIRVAuxDataHandler.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/Driver/ToolChains/HIPAMD.cpp 
b/clang/lib/Driver/ToolChains/HIPAMD.cpp
index dd0daac889d96..0f6d7d15a3f31 100644
--- a/clang/lib/Driver/ToolChains/HIPAMD.cpp
+++ b/clang/lib/Driver/ToolChains/HIPAMD.cpp
@@ -166,8 +166,8 @@ void AMDGCN::Linker::constructLinkAndEmitSpirvCommand(
     llvm::opt::ArgStringList CmdArgs;
 
     CmdArgs.append({"-cc1", "-triple=spirv64-amd-amdhsa", "-emit-obj",
-                    "-disable-llvm-optzns", "-mllvm", 
"-spirv-preserve-auxdata",
-                    LinkedBCFile.getFilename(), "-o", Output.getFilename()});
+                    "-disable-llvm-optzns", LinkedBCFile.getFilename(), "-o",
+                    Output.getFilename()});
 
     const Driver &Driver = getToolChain().getDriver();
     const char *Exec = Driver.getDriverProgramPath();

diff  --git a/clang/test/Driver/spirv-amd-toolchain.c 
b/clang/test/Driver/spirv-amd-toolchain.c
index 356440a308a23..edd142329c4d4 100644
--- a/clang/test/Driver/spirv-amd-toolchain.c
+++ b/clang/test/Driver/spirv-amd-toolchain.c
@@ -29,4 +29,4 @@
 // RUN:   | FileCheck %s --check-prefix=INVOCATION-SPIRV-BACKEND
 // INVOCATION-SPIRV-BACKEND: "-cc1" "-triple" "spirv64-amd-amdhsa" 
{{.*}}"-flto=full" "-flto-unit"{{.*}}"-disable-llvm-optzns" {{.*}} "-o" 
"[[OUTPUT:.+]]" "-x" "c"
 // INVOCATION-SPIRV-BACKEND: "{{.*}}llvm-link" "-o" "[[LINKED_OUTPUT:.+]]" 
"[[OUTPUT]]"
-// INVOCATION-SPIRV-BACKEND: "-cc1" "-triple=spirv64-amd-amdhsa" "-emit-obj" 
{{.*}} "-mllvm" "-spirv-preserve-auxdata" "[[LINKED_OUTPUT]]" "-o" "a.out"
+// INVOCATION-SPIRV-BACKEND: "-cc1" "-triple=spirv64-amd-amdhsa" "-emit-obj" 
{{.*}} "[[LINKED_OUTPUT]]" "-o" "a.out"

diff  --git a/llvm/lib/Target/SPIRV/SPIRVAuxDataHandler.cpp 
b/llvm/lib/Target/SPIRV/SPIRVAuxDataHandler.cpp
index e01a5c49bfa67..e240b85623832 100644
--- a/llvm/lib/Target/SPIRV/SPIRVAuxDataHandler.cpp
+++ b/llvm/lib/Target/SPIRV/SPIRVAuxDataHandler.cpp
@@ -63,7 +63,10 @@ SPIRVAuxDataHandler::SPIRVAuxDataHandler(AsmPrinter &AP, 
const Module &M)
       LinkagePreservedGOs.push_back(&GO);
 }
 
-bool SPIRVAuxDataHandler::hasWork() const { return SPVPreserveAuxData; }
+bool SPIRVAuxDataHandler::hasWork() const {
+  return SPVPreserveAuxData ||
+         Mod.getTargetTriple().getVendor() == Triple::VendorType::AMD;
+}
 
 void SPIRVAuxDataHandler::prepareModuleOutput(const SPIRVSubtarget &ST,
                                               SPIRV::ModuleAnalysisInfo &MAI) {


        
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to