llvmbot wrote:

<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-flang-driver

@llvm/pr-subscribers-clang

Author: None (agozillon)

<details>
<summary>Changes</summary>

The -Xoffload-linker command allows forwarding of linker commands to the 
clang-linker-wrapper used for linking offload libraries into the resulting 
offload binaries amongst other tasks. This is a rather useful command to have 
to support the offloading programming models flang-new currently aims to 
support (OpenMP/OpenACC).

Currently this flag is utilised in the check-offload tests after a recent 
addition and is used in conjunction with the Fortran OpenMP test suite there, 
which fails at the moment due to flang-new not recognizing the command, this 
fixes the issue. The alternative to this would of course be to setup the test 
config to avoid using this flag with Fortran, but I believe adding support of 
the flag to flang-new has more merit as having the same 
compatability/communication capabilities as Clang to the clang-linker-wrapper 
is important as it's a critical component of the offload pipeline, and the 
command will likely see more use in the near future.

---
Full diff: https://github.com/llvm/llvm-project/pull/109907.diff


2 Files Affected:

- (modified) clang/include/clang/Driver/Options.td (+1) 
- (added) flang/test/Driver/xoffload-linker.f90 (+7) 


``````````diff
diff --git a/clang/include/clang/Driver/Options.td 
b/clang/include/clang/Driver/Options.td
index 23bd686a85f526..da24bc3541abda 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -1055,6 +1055,7 @@ def Xlinker : Separate<["-"], "Xlinker">, 
Flags<[LinkerInput, RenderAsInput]>,
   HelpText<"Pass <arg> to the linker">, MetaVarName<"<arg>">,
   Group<Link_Group>;
 def Xoffload_linker : JoinedAndSeparate<["-"], "Xoffload-linker">,
+  Visibility<[ClangOption, CLOption, FlangOption, DXCOption]>,
   HelpText<"Pass <arg> to the offload linkers or the ones identified by 
-<triple>">,
   MetaVarName<"<triple> <arg>">, Group<Link_Group>;
 def Xpreprocessor : Separate<["-"], "Xpreprocessor">, 
Group<Preprocessor_Group>,
diff --git a/flang/test/Driver/xoffload-linker.f90 
b/flang/test/Driver/xoffload-linker.f90
new file mode 100644
index 00000000000000..886e649c1e8760
--- /dev/null
+++ b/flang/test/Driver/xoffload-linker.f90
@@ -0,0 +1,7 @@
+! Test the -Xoffload-linker flag that forwards link commands to the 
clang-linker-wrapper used
+! to help link offloading device libraries
+
+! RUN:   %flang -### --target=x86_64-unknown-linux-gnu -fopenmp 
--offload-arch=gfx90a \
+! RUN:      -Xoffload-linker a %s 2>&1 | FileCheck %s 
--check-prefix=CHECK-XLINKER
+
+! CHECK-XLINKER: -device-linker=a{{.*}}--

``````````

</details>


https://github.com/llvm/llvm-project/pull/109907
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to