diff options
author | Joseph Huber <huberjn@outlook.com> | 2025-08-01 07:26:02 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-08-01 07:26:02 -0500 |
commit | 812b982e3642354660103d694e12ceb355c14e2e (patch) | |
tree | b373c4b8e77278d7653e6d4acb5e99d4d4a68d5e | |
parent | 48ea3e425bb97b73a2c3117fdcd55fe96314ab1c (diff) | |
download | llvm-812b982e3642354660103d694e12ceb355c14e2e.zip llvm-812b982e3642354660103d694e12ceb355c14e2e.tar.gz llvm-812b982e3642354660103d694e12ceb355c14e2e.tar.bz2 |
[HIP] Fix compression arguments being passed to linker wrapper (#151591)
Summary:
The new driver's behavior forwards all unrecognized command line
arguments to the host linker. It only knew `--compress` so when
`-compress` was passed it didn't forward it correctly. This patch
changes the spelling because multi word arguments should have two
dashes.
-rw-r--r-- | clang/lib/Driver/ToolChains/CommonArgs.cpp | 6 | ||||
-rw-r--r-- | clang/test/Driver/hip-offload-compress-zlib.hip | 4 | ||||
-rw-r--r-- | clang/test/Driver/hip-offload-compress-zstd.hip | 16 |
3 files changed, 19 insertions, 7 deletions
diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp index 0771c7c..334fcbb 100644 --- a/clang/lib/Driver/ToolChains/CommonArgs.cpp +++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp @@ -3014,12 +3014,12 @@ void tools::addOffloadCompressArgs(const llvm::opt::ArgList &TCArgs, llvm::opt::ArgStringList &CmdArgs) { if (TCArgs.hasFlag(options::OPT_offload_compress, options::OPT_no_offload_compress, false)) - CmdArgs.push_back("-compress"); + CmdArgs.push_back("--compress"); if (TCArgs.hasArg(options::OPT_v)) - CmdArgs.push_back("-verbose"); + CmdArgs.push_back("--verbose"); if (auto *Arg = TCArgs.getLastArg(options::OPT_offload_compression_level_EQ)) CmdArgs.push_back( - TCArgs.MakeArgString(Twine("-compression-level=") + Arg->getValue())); + TCArgs.MakeArgString(Twine("--compression-level=") + Arg->getValue())); } void tools::addMCModel(const Driver &D, const llvm::opt::ArgList &Args, diff --git a/clang/test/Driver/hip-offload-compress-zlib.hip b/clang/test/Driver/hip-offload-compress-zlib.hip index 9f542c2..f51ab32 100644 --- a/clang/test/Driver/hip-offload-compress-zlib.hip +++ b/clang/test/Driver/hip-offload-compress-zlib.hip @@ -14,7 +14,7 @@ // CHECK: clang-offload-bundler{{.*}} -type=bc // CHECK-SAME: -targets={{.*}}hip-amdgcn-amd-amdhsa-unknown-gfx1100,hip-amdgcn-amd-amdhsa-unknown-gfx1101 -// CHECK-SAME: -compress -verbose -compression-level=9 +// CHECK-SAME: --compress --verbose --compression-level=9 // CHECK: Compressed bundle format // Test uncompress of bundled bitcode. @@ -41,4 +41,4 @@ // CO: clang-offload-bundler{{.*}} "-type=o" // CO-SAME: -targets={{.*}}hipv4-amdgcn-amd-amdhsa--gfx1100,hipv4-amdgcn-amd-amdhsa--gfx1101 -// CO-SAME: "-compress" "-verbose" +// CO-SAME: "--compress" "--verbose" diff --git a/clang/test/Driver/hip-offload-compress-zstd.hip b/clang/test/Driver/hip-offload-compress-zstd.hip index dfe681f..f91c10f 100644 --- a/clang/test/Driver/hip-offload-compress-zstd.hip +++ b/clang/test/Driver/hip-offload-compress-zstd.hip @@ -14,7 +14,7 @@ // CHECK: clang-offload-bundler{{.*}} -type=bc // CHECK-SAME: -targets={{.*}}hip-amdgcn-amd-amdhsa-unknown-gfx1100,hip-amdgcn-amd-amdhsa-unknown-gfx1101 -// CHECK-SAME: -compress -verbose -compression-level=9 +// CHECK-SAME: --compress --verbose --compression-level=9 // CHECK: Compressed bundle format // Test uncompress of bundled bitcode. @@ -41,4 +41,16 @@ // CO: clang-offload-bundler{{.*}} "-type=o" // CO-SAME: -targets={{.*}}hipv4-amdgcn-amd-amdhsa--gfx1100,hipv4-amdgcn-amd-amdhsa--gfx1101 -// CO-SAME: "-compress" "-verbose" +// CO-SAME: "--compress" "--verbose" + +// RUN: rm -rf %t.bc +// RUN: %clang -### -v --target=x86_64-linux-gnu \ +// RUN: -x hip --offload-arch=gfx1100 --offload-arch=gfx1101 \ +// RUN: --offload-new-driver -fgpu-rdc -nogpuinc -nogpulib \ +// RUN: %S/Inputs/hip_multiple_inputs/a.cu \ +// RUN: --offload-compress --offload-compression-level=9 \ +// RUN: --gpu-bundle-output \ +// RUN: -o %t.bc \ +// RUN: 2>&1 | FileCheck %s --check-prefix=NEWDRIVER + +// NEWDRIVER: clang-linker-wrapper{{.*}}"--compress" "--verbose" "--compression-level=9" |