diff options
| author | Petr Hosek <phosek@chromium.org> | 2018-06-05 01:50:59 +0000 |
|---|---|---|
| committer | Petr Hosek <phosek@chromium.org> | 2018-06-05 01:50:59 +0000 |
| commit | 03eece728f55b1823645b0196a859241ff9845f2 (patch) | |
| tree | 65ec6b3e1b4aca352760da2467f77efd7b61c6f3 | |
| parent | 1d9c249db59a9d387f1927c734fb57c73673dd9d (diff) | |
| download | bcm5719-llvm-03eece728f55b1823645b0196a859241ff9845f2.tar.gz bcm5719-llvm-03eece728f55b1823645b0196a859241ff9845f2.zip | |
[Driver][Fuchsia] Pass LTO flags to linker
Even though we use lld by default for Fuchsia, we use Gold plugin
arguments like all other drivers as lld supports Gold plugin options.
Differential Revision: https://reviews.llvm.org/D47668
llvm-svn: 333979
| -rw-r--r-- | clang/lib/Driver/ToolChains/Fuchsia.cpp | 6 | ||||
| -rw-r--r-- | clang/test/Driver/fuchsia.c | 13 |
2 files changed, 19 insertions, 0 deletions
diff --git a/clang/lib/Driver/ToolChains/Fuchsia.cpp b/clang/lib/Driver/ToolChains/Fuchsia.cpp index cfdb3d80a58..c54cf60ef82 100644 --- a/clang/lib/Driver/ToolChains/Fuchsia.cpp +++ b/clang/lib/Driver/ToolChains/Fuchsia.cpp @@ -100,6 +100,12 @@ void fuchsia::Linker::ConstructJob(Compilation &C, const JobAction &JA, ToolChain.AddFilePathLibArgs(Args, CmdArgs); + if (D.isUsingLTO()) { + assert(!Inputs.empty() && "Must have at least one input."); + AddGoldPlugin(ToolChain, Args, CmdArgs, Output, Inputs[0], + D.getLTOMode() == LTOK_Thin); + } + addSanitizerRuntimes(ToolChain, Args, CmdArgs); AddLinkerInputs(ToolChain, Inputs, Args, CmdArgs, JA); diff --git a/clang/test/Driver/fuchsia.c b/clang/test/Driver/fuchsia.c index 1ec79356412..c2b02522ab1 100644 --- a/clang/test/Driver/fuchsia.c +++ b/clang/test/Driver/fuchsia.c @@ -114,3 +114,16 @@ // RUN: | FileCheck %s -check-prefix=CHECK-SCUDO-SHARED // CHECK-SCUDO-SHARED: "-fsanitize=safe-stack,scudo" // CHECK-SCUDO-SHARED: "{{.*[/\\]}}libclang_rt.scudo-x86_64.so" + +// RUN: %clang %s -### --target=aarch64-fuchsia \ +// RUN: -O3 -flto -mcpu=cortex-a53 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK-LTO +// CHECK-LTO: "-plugin-opt=mcpu=cortex-a53" +// CHECK-LTO: "-plugin-opt=O3" + +// RUN: %clang %s -### --target=x86_64-fuchsia \ +// RUN: -flto=thin -flto-jobs=8 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK-THINLTO +// CHECK-THINLTO: "-plugin-opt=mcpu=x86-64" +// CHECK-THINLTO: "-plugin-opt=thinlto" +// CHECK-THINLTO: "-plugin-opt=jobs=8" |

