Skip to content

Commit 6b17525

Browse files
[Flang] Add switch for disabling implicit linking of Flang GPU (#677)
User can disable implicit linking Flang GPU runtime by setting `-fno-gpu-flang-rt` flag.
1 parent be9b8bf commit 6b17525

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

clang/include/clang/Options/Options.td

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6176,6 +6176,8 @@ def : Flag<["-"], "nogpulib">,
61766176
def : Flag<["-"], "nocudalib">, Alias<no_offloadlib>;
61776177
def gpulibc : Flag<["-"], "gpulibc">, Visibility<[ClangOption, CC1Option, FlangOption, FC1Option]>,
61786178
HelpText<"Link the LLVM C Library for GPUs">;
6179+
def fgpu_flang_rt : Flag<["-"], "fgpu-flang-rt">, Visibility<[ClangOption, CC1Option, FlangOption, FC1Option]>;
6180+
def fno_gpu_flang_rt : Flag<["-"], "fno-gpu-flang-rt">, Visibility<[ClangOption, CC1Option, FlangOption, FC1Option]>;
61796181
def nogpulibc : Flag<["-"], "nogpulibc">, Visibility<[ClangOption, CC1Option, FlangOption, FC1Option]>;
61806182
def nodefaultlibs : Flag<["-"], "nodefaultlibs">,
61816183
Visibility<[ClangOption, FlangOption]>;

clang/lib/Driver/ToolChains/Clang.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9462,7 +9462,9 @@ void LinkerWrapper::ConstructJob(Compilation &C, const JobAction &JA,
94629462
Args.MakeArgString("--device-linker=" + TC.getTripleString() + "=" +
94639463
"-lclang_rt.builtins"));
94649464
bool HasFlangRT = HasCompilerRT && C.getDriver().IsFlangMode();
9465-
if (HasFlangRT)
9465+
bool UseFlangRT = Args.hasFlag(options::OPT_fgpu_flang_rt,
9466+
options::OPT_fno_gpu_flang_rt, true);
9467+
if (HasFlangRT && UseFlangRT)
94669468
CmdArgs.push_back(
94679469
Args.MakeArgString("--device-linker=" + TC.getTripleString() + "=" +
94689470
"-lflang_rt.runtime"));

0 commit comments

Comments
 (0)