From f6dee89e5fb845be75ea29048ee1904878026fb2 Mon Sep 17 00:00:00 2001 From: "Agarwal, Udit" Date: Fri, 25 Oct 2024 17:57:22 -0700 Subject: [PATCH 1/4] [Driver] Do not compress bundle when offloading to HIP --- clang/lib/Driver/ToolChains/HIPUtility.cpp | 5 ++++- clang/test/Driver/sycl-offload-wrapper-compression.cpp | 8 ++++++++ sycl/test-e2e/Compression/compression.cpp | 3 --- sycl/test-e2e/Compression/compression_multiple_tu.cpp | 3 --- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/clang/lib/Driver/ToolChains/HIPUtility.cpp b/clang/lib/Driver/ToolChains/HIPUtility.cpp index b3adfe65402f..bcdb31fd59c5 100644 --- a/clang/lib/Driver/ToolChains/HIPUtility.cpp +++ b/clang/lib/Driver/ToolChains/HIPUtility.cpp @@ -324,7 +324,10 @@ void HIP::constructHIPFatbinCommand(Compilation &C, const JobAction &JA, Args.MakeArgString(std::string("-output=").append(Output)); BundlerArgs.push_back(BundlerOutputArg); - addOffloadCompressArgs(Args, BundlerArgs); + // For SYCL, the compression is occuring during the wrapping step, so we do + // not want to do additional compression here. + if (!JA.isDeviceOffloading(Action::OFK_SYCL)) + addOffloadCompressArgs(Args, BundlerArgs); const char *Bundler = Args.MakeArgString( T.getToolChain().GetProgramPath("clang-offload-bundler")); diff --git a/clang/test/Driver/sycl-offload-wrapper-compression.cpp b/clang/test/Driver/sycl-offload-wrapper-compression.cpp index 1ef9282ee359..1037913d27a4 100644 --- a/clang/test/Driver/sycl-offload-wrapper-compression.cpp +++ b/clang/test/Driver/sycl-offload-wrapper-compression.cpp @@ -10,5 +10,13 @@ // RUN: %clangxx -### -fsycl %s 2>&1 | FileCheck %s --check-prefix=CHECK-NO-COMPRESS // RUN: %clangxx -### -fsycl --offload-compression-level=3 %s 2>&1 | FileCheck %s --check-prefix=CHECK-NO-COMPRESS +// For SYCL offloading to HIP, make sure we don't pass '--compress' to offload-bundler. +// Clang thows an error in the following command "cannot find 'remangled-l64-signed_char.libspirv-amdgcn-amd-amdhsa.bc'", that's why adding 'not'. + +// RUN: not %clangxx -### -fsycl --offload-compress -Xsycl-target-backend=amdgcn-amd-amdhsa --offload-arch=gfx1031 -fsycl-targets=amdgcn-amd-amdhsa %s > %t.driver 2>&1 +// RUN: FileCheck %s --check-prefix=CHECK-NO-COMPRESS-BUNDLER --input-file=%t.driver + // CHECK-NO-COMPRESS-NOT: {{.*}}clang-offload-wrapper{{.*}}"-offload-compress"{{.*}} // CHECK-NO-COMPRESS-NOT: {{.*}}clang-offload-wrapper{{.*}}"-offload-compression-level=3"{{.*}} + +// CHECK-NO-COMPRESS-BUNDLER-NOT: {{.*}}clang-offload-bundler{{.*}}"-compress"{{.*}} diff --git a/sycl/test-e2e/Compression/compression.cpp b/sycl/test-e2e/Compression/compression.cpp index bd2c8ef558e6..ffabf1cb07aa 100644 --- a/sycl/test-e2e/Compression/compression.cpp +++ b/sycl/test-e2e/Compression/compression.cpp @@ -1,9 +1,6 @@ // End-to-End test for testing device image compression. // REQUIRES: zstd -// XFAIL: hip_amd -// XFAIL-TRACKER: https://github.com/intel/llvm/issues/15829 - // RUN: %{build} -O0 -g %S/Inputs/single_kernel.cpp -o %t_not_compress.out // RUN: %{build} -O0 -g --offload-compress --offload-compression-level=3 %S/Inputs/single_kernel.cpp -o %t_compress.out // RUN: %{run} %t_not_compress.out diff --git a/sycl/test-e2e/Compression/compression_multiple_tu.cpp b/sycl/test-e2e/Compression/compression_multiple_tu.cpp index a561ec5f342a..72eb3f090479 100644 --- a/sycl/test-e2e/Compression/compression_multiple_tu.cpp +++ b/sycl/test-e2e/Compression/compression_multiple_tu.cpp @@ -2,9 +2,6 @@ // translation units, one compressed and one not compressed. // REQUIRES: zstd, linux -// XFAIL: hip_amd -// XFAIL-TRACKER: https://github.com/intel/llvm/issues/15829 - // RUN: %{build} --offload-compress -DENABLE_KERNEL1 -shared -fPIC -o %T/kernel1.so // RUN: %{build} -DENABLE_KERNEL2 -shared -fPIC -o %T/kernel2.so From 51efd544819ec3dc65469ce53cf15a80212bf7c3 Mon Sep 17 00:00:00 2001 From: "Agarwal, Udit" Date: Fri, 25 Oct 2024 21:45:20 -0700 Subject: [PATCH 2/4] Fix LIT test failure --- clang/lib/Driver/ToolChains/HIPUtility.cpp | 2 +- clang/test/Driver/sycl-offload-wrapper-compression.cpp | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/clang/lib/Driver/ToolChains/HIPUtility.cpp b/clang/lib/Driver/ToolChains/HIPUtility.cpp index bcdb31fd59c5..8f6b305aaf69 100644 --- a/clang/lib/Driver/ToolChains/HIPUtility.cpp +++ b/clang/lib/Driver/ToolChains/HIPUtility.cpp @@ -324,7 +324,7 @@ void HIP::constructHIPFatbinCommand(Compilation &C, const JobAction &JA, Args.MakeArgString(std::string("-output=").append(Output)); BundlerArgs.push_back(BundlerOutputArg); - // For SYCL, the compression is occuring during the wrapping step, so we do + // For SYCL, the compression is occurring during the wrapping step, so we do // not want to do additional compression here. if (!JA.isDeviceOffloading(Action::OFK_SYCL)) addOffloadCompressArgs(Args, BundlerArgs); diff --git a/clang/test/Driver/sycl-offload-wrapper-compression.cpp b/clang/test/Driver/sycl-offload-wrapper-compression.cpp index 1037913d27a4..b1432cd3b884 100644 --- a/clang/test/Driver/sycl-offload-wrapper-compression.cpp +++ b/clang/test/Driver/sycl-offload-wrapper-compression.cpp @@ -11,9 +11,10 @@ // RUN: %clangxx -### -fsycl --offload-compression-level=3 %s 2>&1 | FileCheck %s --check-prefix=CHECK-NO-COMPRESS // For SYCL offloading to HIP, make sure we don't pass '--compress' to offload-bundler. -// Clang thows an error in the following command "cannot find 'remangled-l64-signed_char.libspirv-amdgcn-amd-amdhsa.bc'", that's why adding 'not'. +// Clang throws an error in the following command "cannot find 'remangled-l64-signed_char.libspirv-amdgcn-amd-amdhsa.bc'" on some machine, +// that's why appending '|| true'. This error should not affect the driver invocation, which this test intends to verify. -// RUN: not %clangxx -### -fsycl --offload-compress -Xsycl-target-backend=amdgcn-amd-amdhsa --offload-arch=gfx1031 -fsycl-targets=amdgcn-amd-amdhsa %s > %t.driver 2>&1 +// RUN: (%clangxx -### -fsycl --offload-compress -Xsycl-target-backend=amdgcn-amd-amdhsa --offload-arch=gfx1031 -fsycl-targets=amdgcn-amd-amdhsa %s > %t.driver 2>&1) || true // RUN: FileCheck %s --check-prefix=CHECK-NO-COMPRESS-BUNDLER --input-file=%t.driver // CHECK-NO-COMPRESS-NOT: {{.*}}clang-offload-wrapper{{.*}}"-offload-compress"{{.*}} From bffe490c00e911e60318aec3a894f0ece46f273b Mon Sep 17 00:00:00 2001 From: "Agarwal, Udit" Date: Sun, 27 Oct 2024 17:31:31 -0700 Subject: [PATCH 3/4] Fix redirect on windows --- clang/test/Driver/sycl-offload-wrapper-compression.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang/test/Driver/sycl-offload-wrapper-compression.cpp b/clang/test/Driver/sycl-offload-wrapper-compression.cpp index b1432cd3b884..890af1c3dc15 100644 --- a/clang/test/Driver/sycl-offload-wrapper-compression.cpp +++ b/clang/test/Driver/sycl-offload-wrapper-compression.cpp @@ -14,7 +14,7 @@ // Clang throws an error in the following command "cannot find 'remangled-l64-signed_char.libspirv-amdgcn-amd-amdhsa.bc'" on some machine, // that's why appending '|| true'. This error should not affect the driver invocation, which this test intends to verify. -// RUN: (%clangxx -### -fsycl --offload-compress -Xsycl-target-backend=amdgcn-amd-amdhsa --offload-arch=gfx1031 -fsycl-targets=amdgcn-amd-amdhsa %s > %t.driver 2>&1) || true +// RUN: (%clangxx -### -fsycl --offload-compress -Xsycl-target-backend=amdgcn-amd-amdhsa --offload-arch=gfx1031 -fsycl-targets=amdgcn-amd-amdhsa %s &> %t.driver) || true // RUN: FileCheck %s --check-prefix=CHECK-NO-COMPRESS-BUNDLER --input-file=%t.driver // CHECK-NO-COMPRESS-NOT: {{.*}}clang-offload-wrapper{{.*}}"-offload-compress"{{.*}} From a8d19fcd98e68c9a0fd1c66cec49c126079dacd1 Mon Sep 17 00:00:00 2001 From: "Agarwal, Udit" Date: Mon, 28 Oct 2024 11:29:15 -0700 Subject: [PATCH 4/4] add -fno-sycl-libspriv -nogpulib --- clang/test/Driver/sycl-offload-wrapper-compression.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/clang/test/Driver/sycl-offload-wrapper-compression.cpp b/clang/test/Driver/sycl-offload-wrapper-compression.cpp index 890af1c3dc15..9e9aa437047d 100644 --- a/clang/test/Driver/sycl-offload-wrapper-compression.cpp +++ b/clang/test/Driver/sycl-offload-wrapper-compression.cpp @@ -11,10 +11,7 @@ // RUN: %clangxx -### -fsycl --offload-compression-level=3 %s 2>&1 | FileCheck %s --check-prefix=CHECK-NO-COMPRESS // For SYCL offloading to HIP, make sure we don't pass '--compress' to offload-bundler. -// Clang throws an error in the following command "cannot find 'remangled-l64-signed_char.libspirv-amdgcn-amd-amdhsa.bc'" on some machine, -// that's why appending '|| true'. This error should not affect the driver invocation, which this test intends to verify. - -// RUN: (%clangxx -### -fsycl --offload-compress -Xsycl-target-backend=amdgcn-amd-amdhsa --offload-arch=gfx1031 -fsycl-targets=amdgcn-amd-amdhsa %s &> %t.driver) || true +// RUN: %clangxx -### -fsycl --offload-compress -Xsycl-target-backend=amdgcn-amd-amdhsa --offload-arch=gfx1031 -fsycl-targets=amdgcn-amd-amdhsa -fno-sycl-libspirv -nogpulib %s &> %t.driver // RUN: FileCheck %s --check-prefix=CHECK-NO-COMPRESS-BUNDLER --input-file=%t.driver // CHECK-NO-COMPRESS-NOT: {{.*}}clang-offload-wrapper{{.*}}"-offload-compress"{{.*}}