jhuber6 updated this revision to Diff 432060. jhuber6 added a comment. Changing to use `--offload-link` and use `-dlink` as an alias.
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D126398/new/ https://reviews.llvm.org/D126398 Files: clang/docs/ClangCommandLineReference.rst clang/include/clang/Driver/Options.td clang/lib/Driver/Driver.cpp clang/test/Driver/cuda-openmp-driver.cu Index: clang/test/Driver/cuda-openmp-driver.cu =================================================================== --- clang/test/Driver/cuda-openmp-driver.cu +++ clang/test/Driver/cuda-openmp-driver.cu @@ -35,3 +35,8 @@ // RUN: %clang -### -target x86_64-linux-gnu -nocudalib --cuda-feature=+ptx61 --offload-arch=sm_70 %s 2>&1 | FileCheck -check-prefix MANUAL-FEATURE %s // MANUAL-FEATURE: -cc1{{.*}}-target-feature{{.*}}+ptx61 + +// RUN: %clang -### -target x86_64-linux-gnu -nocudalib -ccc-print-bindings -dlink %s 2>&1 \ +// RUN: | FileCheck -check-prefix DEVICE-LINK %s + +// DEVICE-LINK: "x86_64-unknown-linux-gnu" - "Offload::Linker", inputs: ["[[INPUT:.+]]"], output: "a.out" Index: clang/lib/Driver/Driver.cpp =================================================================== --- clang/lib/Driver/Driver.cpp +++ clang/lib/Driver/Driver.cpp @@ -4158,7 +4158,8 @@ // Check if this Linker Job should emit a static library. if (ShouldEmitStaticLibrary(Args)) { LA = C.MakeAction<StaticLibJobAction>(LinkerInputs, types::TY_Image); - } else if (UseNewOffloadingDriver) { + } else if (UseNewOffloadingDriver || + Args.hasArg(options::OPT_offload_link)) { LA = C.MakeAction<LinkerWrapperJobAction>(LinkerInputs, types::TY_Image); LA->propagateHostOffloadInfo(C.getActiveOffloadKinds(), /*BoundArch=*/nullptr); Index: clang/include/clang/Driver/Options.td =================================================================== --- clang/include/clang/Driver/Options.td +++ clang/include/clang/Driver/Options.td @@ -820,6 +820,10 @@ def z : Separate<["-"], "z">, Flags<[LinkerInput, RenderAsInput]>, HelpText<"Pass -z <arg> to the linker">, MetaVarName<"<arg>">, Group<Link_Group>; +def offload_link : Flag<["--"], "offload-link">, Group<Link_Group>, + HelpText<"Use the new offloading linker to perform the link job.">; +def device_link : Flag<["-"], "dlink">, Group<Link_Group>, + Alias<offload_link>; def Xlinker : Separate<["-"], "Xlinker">, Flags<[LinkerInput, RenderAsInput]>, HelpText<"Pass <arg> to the linker">, MetaVarName<"<arg>">, Group<Link_Group>; Index: clang/docs/ClangCommandLineReference.rst =================================================================== --- clang/docs/ClangCommandLineReference.rst +++ clang/docs/ClangCommandLineReference.rst @@ -4209,6 +4209,10 @@ Pass the comma separated arguments in <arg> to the linker +.. option:: -dlink, --offload-link + +Use the linker supporting offloading device linking. + .. option:: -X .. option:: -Xlinker <arg>, --for-linker <arg>, --for-linker=<arg>
Index: clang/test/Driver/cuda-openmp-driver.cu =================================================================== --- clang/test/Driver/cuda-openmp-driver.cu +++ clang/test/Driver/cuda-openmp-driver.cu @@ -35,3 +35,8 @@ // RUN: %clang -### -target x86_64-linux-gnu -nocudalib --cuda-feature=+ptx61 --offload-arch=sm_70 %s 2>&1 | FileCheck -check-prefix MANUAL-FEATURE %s // MANUAL-FEATURE: -cc1{{.*}}-target-feature{{.*}}+ptx61 + +// RUN: %clang -### -target x86_64-linux-gnu -nocudalib -ccc-print-bindings -dlink %s 2>&1 \ +// RUN: | FileCheck -check-prefix DEVICE-LINK %s + +// DEVICE-LINK: "x86_64-unknown-linux-gnu" - "Offload::Linker", inputs: ["[[INPUT:.+]]"], output: "a.out" Index: clang/lib/Driver/Driver.cpp =================================================================== --- clang/lib/Driver/Driver.cpp +++ clang/lib/Driver/Driver.cpp @@ -4158,7 +4158,8 @@ // Check if this Linker Job should emit a static library. if (ShouldEmitStaticLibrary(Args)) { LA = C.MakeAction<StaticLibJobAction>(LinkerInputs, types::TY_Image); - } else if (UseNewOffloadingDriver) { + } else if (UseNewOffloadingDriver || + Args.hasArg(options::OPT_offload_link)) { LA = C.MakeAction<LinkerWrapperJobAction>(LinkerInputs, types::TY_Image); LA->propagateHostOffloadInfo(C.getActiveOffloadKinds(), /*BoundArch=*/nullptr); Index: clang/include/clang/Driver/Options.td =================================================================== --- clang/include/clang/Driver/Options.td +++ clang/include/clang/Driver/Options.td @@ -820,6 +820,10 @@ def z : Separate<["-"], "z">, Flags<[LinkerInput, RenderAsInput]>, HelpText<"Pass -z <arg> to the linker">, MetaVarName<"<arg>">, Group<Link_Group>; +def offload_link : Flag<["--"], "offload-link">, Group<Link_Group>, + HelpText<"Use the new offloading linker to perform the link job.">; +def device_link : Flag<["-"], "dlink">, Group<Link_Group>, + Alias<offload_link>; def Xlinker : Separate<["-"], "Xlinker">, Flags<[LinkerInput, RenderAsInput]>, HelpText<"Pass <arg> to the linker">, MetaVarName<"<arg>">, Group<Link_Group>; Index: clang/docs/ClangCommandLineReference.rst =================================================================== --- clang/docs/ClangCommandLineReference.rst +++ clang/docs/ClangCommandLineReference.rst @@ -4209,6 +4209,10 @@ Pass the comma separated arguments in <arg> to the linker +.. option:: -dlink, --offload-link + +Use the linker supporting offloading device linking. + .. option:: -X .. option:: -Xlinker <arg>, --for-linker <arg>, --for-linker=<arg>
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits