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
