[clang] e372c1d - [HIP] Fix -fgpu-allow-device-init option
Yaxun Liu via cfe-commits
cfe-commits at lists.llvm.org
Sun Oct 4 19:17:16 PDT 2020
Author: Yaxun (Sam) Liu
Date: 2020-10-04T22:13:05-04:00
New Revision: e372c1d7624e2402a5f91a640780fb32649922b6
URL: https://github.com/llvm/llvm-project/commit/e372c1d7624e2402a5f91a640780fb32649922b6
DIFF: https://github.com/llvm/llvm-project/commit/e372c1d7624e2402a5f91a640780fb32649922b6.diff
LOG: [HIP] Fix -fgpu-allow-device-init option
The option needs to be passed to both host and device compilation.
Differential Revision: https://reviews.llvm.org/D88550
Added:
Modified:
clang/lib/Driver/ToolChains/Clang.cpp
clang/lib/Driver/ToolChains/HIP.cpp
clang/test/Driver/hip-options.hip
Removed:
################################################################################
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
index 272a49899012..f6eeb53964a7 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -5476,9 +5476,14 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
// Forward -cl options to -cc1
RenderOpenCLOptions(Args, CmdArgs);
- if (IsHIP && Args.hasFlag(options::OPT_fhip_new_launch_api,
- options::OPT_fno_hip_new_launch_api, true))
- CmdArgs.push_back("-fhip-new-launch-api");
+ if (IsHIP) {
+ if (Args.hasFlag(options::OPT_fhip_new_launch_api,
+ options::OPT_fno_hip_new_launch_api, true))
+ CmdArgs.push_back("-fhip-new-launch-api");
+ if (Args.hasFlag(options::OPT_fgpu_allow_device_init,
+ options::OPT_fno_gpu_allow_device_init, false))
+ CmdArgs.push_back("-fgpu-allow-device-init");
+ }
if (Arg *A = Args.getLastArg(options::OPT_fcf_protection_EQ)) {
CmdArgs.push_back(
diff --git a/clang/lib/Driver/ToolChains/HIP.cpp b/clang/lib/Driver/ToolChains/HIP.cpp
index f1044f316fc8..4d1e0f9f2fdf 100644
--- a/clang/lib/Driver/ToolChains/HIP.cpp
+++ b/clang/lib/Driver/ToolChains/HIP.cpp
@@ -268,10 +268,6 @@ void HIPToolChain::addClangTargetOptions(
CC1Args.push_back(DriverArgs.MakeArgStringRef(ArgStr));
}
- if (DriverArgs.hasFlag(options::OPT_fgpu_allow_device_init,
- options::OPT_fno_gpu_allow_device_init, false))
- CC1Args.push_back("-fgpu-allow-device-init");
-
CC1Args.push_back("-fcuda-allow-variadic-functions");
// Default to "hidden" visibility, as object level linking will not be
diff --git a/clang/test/Driver/hip-options.hip b/clang/test/Driver/hip-options.hip
index a7a6e02a3c81..fa7b019e5762 100644
--- a/clang/test/Driver/hip-options.hip
+++ b/clang/test/Driver/hip-options.hip
@@ -9,6 +9,11 @@
// CHECK: clang{{.*}}" "-cc1" {{.*}} "-fcuda-is-device"
// CHECK-SAME: "--gpu-max-threads-per-block=1024"
+// RUN: %clang -### -nogpuinc -nogpulib -fgpu-allow-device-init \
+// RUN: %s 2>&1 | FileCheck -check-prefix=DEVINIT %s
+// DEVINIT: clang{{.*}}" "-cc1" {{.*}}"-fgpu-allow-device-init"
+// DEVINIT: clang{{.*}}" "-cc1" {{.*}}"-fgpu-allow-device-init"
+
// RUN: %clang -### -x hip -target x86_64-pc-windows-msvc -fms-extensions \
// RUN: -mllvm -amdgpu-early-inline-all=true %s 2>&1 | \
// RUN: FileCheck -check-prefix=MLLVM %s
More information about the cfe-commits
mailing list