diff options
author | Teresa Johnson <tejohnson@google.com> | 2019-01-11 18:32:07 +0000 |
---|---|---|
committer | Teresa Johnson <tejohnson@google.com> | 2019-01-11 18:32:07 +0000 |
commit | 84cecfcb3db7c3275ae2d64c419a752d9f5311d6 (patch) | |
tree | 137b550e0763b8685551711c9a6829e232870ba6 /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | 290a8398917a3d4ef521a0cfdb67e65238f0043a (diff) | |
download | llvm-84cecfcb3db7c3275ae2d64c419a752d9f5311d6.zip llvm-84cecfcb3db7c3275ae2d64c419a752d9f5311d6.tar.gz llvm-84cecfcb3db7c3275ae2d64c419a752d9f5311d6.tar.bz2 |
[LTO] Add option to enable LTOUnit splitting, and disable unless needed
Summary:
Adds a new -f[no]split-lto-unit flag that is disabled by default to
control module splitting during ThinLTO. It is automatically enabled
for -fsanitize=cfi and -fwhole-program-vtables.
The new EnableSplitLTOUnit codegen flag is passed down to llvm
via a new module flag of the same name.
Depends on D53890.
Reviewers: pcc
Subscribers: ormris, mehdi_amini, inglorion, eraman, steven_wu, dexonsmith, cfe-commits, llvm-commits
Differential Revision: https://reviews.llvm.org/D53891
llvm-svn: 350949
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
-rw-r--r-- | clang/lib/Frontend/CompilerInvocation.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index 1e85735..3e6528c 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -907,6 +907,7 @@ static bool ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, InputKind IK, Diags.Report(diag::err_drv_invalid_value) << A->getAsString(Args) << S; } Opts.LTOUnit = Args.hasFlag(OPT_flto_unit, OPT_fno_lto_unit, false); + Opts.EnableSplitLTOUnit = Args.hasArg(OPT_fsplit_lto_unit); if (Arg *A = Args.getLastArg(OPT_fthinlto_index_EQ)) { if (IK.getLanguage() != InputKind::LLVM_IR) Diags.Report(diag::err_drv_argument_only_allowed_with) |