From f01361477c2d2740ff810773d7ed1691b5ed7e76 Mon Sep 17 00:00:00 2001 From: Aidan Belton Date: Fri, 16 Jul 2021 15:55:17 +0100 Subject: [PATCH 1/3] -emit-param-info is not added with AMD and -fscyl-dead-args --- clang/lib/Driver/ToolChains/Clang.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index 04076147dbe84..b34694c85f495 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -8856,7 +8856,7 @@ void SYCLPostLink::ConstructJob(Compilation &C, const JobAction &JA, // -fsycl-device-code-split=auto // Turn on Dead Parameter Elimination Optimization with early optimizations - if (!getToolChain().getTriple().isNVPTX() && + if (!(getToolChain().getTriple().isNVPTX() || getToolChain().getTriple().isAMDGCN()) && TCArgs.hasFlag(options::OPT_fsycl_dead_args_optimization, options::OPT_fno_sycl_dead_args_optimization, false)) addArgs(CmdArgs, TCArgs, {"-emit-param-info"}); From 7c59e741c6b5a1d8f5e61d6c027f7158ed93f214 Mon Sep 17 00:00:00 2001 From: Aidan Belton Date: Fri, 16 Jul 2021 15:56:04 +0100 Subject: [PATCH 2/3] clang-format --- clang/lib/Driver/ToolChains/Clang.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index b34694c85f495..8a7868d217e06 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -8856,7 +8856,8 @@ void SYCLPostLink::ConstructJob(Compilation &C, const JobAction &JA, // -fsycl-device-code-split=auto // Turn on Dead Parameter Elimination Optimization with early optimizations - if (!(getToolChain().getTriple().isNVPTX() || getToolChain().getTriple().isAMDGCN()) && + if (!(getToolChain().getTriple().isNVPTX() || + getToolChain().getTriple().isAMDGCN()) && TCArgs.hasFlag(options::OPT_fsycl_dead_args_optimization, options::OPT_fno_sycl_dead_args_optimization, false)) addArgs(CmdArgs, TCArgs, {"-emit-param-info"}); From 3947ec0781d4e3b4d915e06bdf337b0aef5785ab Mon Sep 17 00:00:00 2001 From: Aidan Belton Date: Mon, 19 Jul 2021 18:04:14 +0100 Subject: [PATCH 3/3] Added test for dae flags --- clang/lib/Driver/ToolChains/Clang.cpp | 2 +- clang/test/Driver/sycl-triple-dae-flags.cpp | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 clang/test/Driver/sycl-triple-dae-flags.cpp diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index 8a7868d217e06..b316da8058366 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -4624,7 +4624,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, } // Turn on Dead Parameter Elimination Optimization with early optimizations - if (!RawTriple.isNVPTX() && + if (!(RawTriple.isNVPTX() || RawTriple.isAMDGCN()) && Args.hasFlag(options::OPT_fsycl_dead_args_optimization, options::OPT_fno_sycl_dead_args_optimization, false)) CmdArgs.push_back("-fenable-sycl-dae"); diff --git a/clang/test/Driver/sycl-triple-dae-flags.cpp b/clang/test/Driver/sycl-triple-dae-flags.cpp new file mode 100644 index 0000000000000..89f4f06c1b317 --- /dev/null +++ b/clang/test/Driver/sycl-triple-dae-flags.cpp @@ -0,0 +1,12 @@ +// RUN: %clangxx -### -fsycl -fsycl-targets=nvptx64-nvidia-cuda-sycldevice -fsycl-dead-args-optimization %s 2> %t.cuda.out +// RUN: FileCheck %s --input-file %t.cuda.out +// +// RUN: %clangxx -### -fsycl -fsycl-targets=amdgcn-amd-amdhsa-sycldevice -fsycl-dead-args-optimization %s 2> %t.rocm.out +// RUN: FileCheck %s --input-file %t.rocm.out +// CHECK-NOT: -fenable-sycl-dae +// CHECK-NOT: -emit-param-info +// +// RUN: %clangxx -### -fsycl -fsycl-targets=spir64-unknown-unknown-sycldevice -fsycl-dead-args-optimization %s 2> %t.out +// RUN: FileCheck %s --check-prefixes=CHECK-FENABLE,CHECK-EMIT --input-file %t.out +// CHECK-FENABLE: -fenable-sycl-dae +// CHECK-EMIT: -emit-param-info