diff options
| author | Eugene Leviant <eleviant@accesssoftek.com> | 2019-10-18 11:58:21 +0000 |
|---|---|---|
| committer | Eugene Leviant <eleviant@accesssoftek.com> | 2019-10-18 11:58:21 +0000 |
| commit | bc887a8d4a379625f9abf3d53cfa56fb1d26e78d (patch) | |
| tree | e22c14f7393c223f6ba09f0cfeb2d393b715fa27 | |
| parent | 84da2596f96d388e9cd21d16e64687bca68f436a (diff) | |
| download | bcm5719-llvm-bc887a8d4a379625f9abf3d53cfa56fb1d26e78d.tar.gz bcm5719-llvm-bc887a8d4a379625f9abf3d53cfa56fb1d26e78d.zip | |
[ThinLTOCodeGenerator] Add support for index-based WPD
This is clang part of the patch. It adds -flto-unit flag for thin LTO
builds on Mac and PS4
Differential revision: https://reviews.llvm.org/D68950
llvm-svn: 375224
| -rw-r--r-- | clang/lib/Driver/ToolChains/Clang.cpp | 8 | ||||
| -rw-r--r-- | clang/test/Driver/lto-unit.c | 5 |
2 files changed, 3 insertions, 10 deletions
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index bfccf7a1dbb..55d631733ad 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -3631,13 +3631,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, if (D.isUsingLTO() && !isDeviceOffloadAction) { Args.AddLastArg(CmdArgs, options::OPT_flto, options::OPT_flto_EQ); - - // The Darwin and PS4 linkers currently use the legacy LTO API, which - // does not support LTO unit features (CFI, whole program vtable opt) - // under ThinLTO. - if (!(RawTriple.isOSDarwin() || RawTriple.isPS4()) || - D.getLTOMode() == LTOK_Full) - CmdArgs.push_back("-flto-unit"); + CmdArgs.push_back("-flto-unit"); } } diff --git a/clang/test/Driver/lto-unit.c b/clang/test/Driver/lto-unit.c index 1f1a2861670..0fdd493888d 100644 --- a/clang/test/Driver/lto-unit.c +++ b/clang/test/Driver/lto-unit.c @@ -1,9 +1,8 @@ // RUN: %clang -target x86_64-unknown-linux -### %s -flto=full 2>&1 | FileCheck --check-prefix=UNIT %s // RUN: %clang -target x86_64-unknown-linux -### %s -flto=thin 2>&1 | FileCheck --check-prefix=UNIT %s // RUN: %clang -target x86_64-apple-darwin13.3.0 -### %s -flto=full 2>&1 | FileCheck --check-prefix=UNIT %s -// RUN: %clang -target x86_64-apple-darwin13.3.0 -### %s -flto=thin 2>&1 | FileCheck --check-prefix=NOUNIT %s +// RUN: %clang -target x86_64-apple-darwin13.3.0 -### %s -flto=thin 2>&1 | FileCheck --check-prefix=UNIT %s // RUN: %clang -target x86_64-scei-ps4 -### %s -flto=full 2>&1 | FileCheck --check-prefix=UNIT %s -// RUN: %clang -target x86_64-scei-ps4 -### %s -flto=thin 2>&1 | FileCheck --check-prefix=NOUNIT %s +// RUN: %clang -target x86_64-scei-ps4 -### %s -flto=thin 2>&1 | FileCheck --check-prefix=UNIT %s // UNIT: "-flto-unit" -// NOUNIT-NOT: "-flto-unit" |

