r375224 - [ThinLTOCodeGenerator] Add support for index-based WPD

Eugene Leviant via cfe-commits cfe-commits at lists.llvm.org
Fri Oct 18 04:58:21 PDT 2019


Author: evgeny777
Date: Fri Oct 18 04:58:21 2019
New Revision: 375224

URL: http://llvm.org/viewvc/llvm-project?rev=375224&view=rev
Log:
[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

Modified:
    cfe/trunk/lib/Driver/ToolChains/Clang.cpp
    cfe/trunk/test/Driver/lto-unit.c

Modified: cfe/trunk/lib/Driver/ToolChains/Clang.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/Clang.cpp?rev=375224&r1=375223&r2=375224&view=diff
==============================================================================
--- cfe/trunk/lib/Driver/ToolChains/Clang.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains/Clang.cpp Fri Oct 18 04:58:21 2019
@@ -3631,13 +3631,7 @@ void Clang::ConstructJob(Compilation &C,
 
     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");
     }
   }
 

Modified: cfe/trunk/test/Driver/lto-unit.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/lto-unit.c?rev=375224&r1=375223&r2=375224&view=diff
==============================================================================
--- cfe/trunk/test/Driver/lto-unit.c (original)
+++ cfe/trunk/test/Driver/lto-unit.c Fri Oct 18 04:58:21 2019
@@ -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"




More information about the cfe-commits mailing list