[lld] r271605 - [LTO] Add --lto-aa-pipeline.
Davide Italiano via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 2 15:58:12 PDT 2016
Author: davide
Date: Thu Jun 2 17:58:11 2016
New Revision: 271605
URL: http://llvm.org/viewvc/llvm-project?rev=271605&view=rev
Log:
[LTO] Add --lto-aa-pipeline.
Differential Revision: http://reviews.llvm.org/D20888
Modified:
lld/trunk/ELF/Config.h
lld/trunk/ELF/Driver.cpp
lld/trunk/ELF/LTO.cpp
lld/trunk/ELF/Options.td
lld/trunk/test/ELF/lto/ltopasses-custom.ll
Modified: lld/trunk/ELF/Config.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Config.h?rev=271605&r1=271604&r2=271605&view=diff
==============================================================================
--- lld/trunk/ELF/Config.h (original)
+++ lld/trunk/ELF/Config.h Thu Jun 2 17:58:11 2016
@@ -44,6 +44,7 @@ struct Configuration {
llvm::StringRef Emulation;
llvm::StringRef Fini;
llvm::StringRef Init;
+ llvm::StringRef LtoAAPipeline;
llvm::StringRef LtoNewPmPasses;
llvm::StringRef OutputFile;
llvm::StringRef SoName;
Modified: lld/trunk/ELF/Driver.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Driver.cpp?rev=271605&r1=271604&r2=271605&view=diff
==============================================================================
--- lld/trunk/ELF/Driver.cpp (original)
+++ lld/trunk/ELF/Driver.cpp Thu Jun 2 17:58:11 2016
@@ -338,6 +338,7 @@ void LinkerDriver::readConfigs(opt::Inpu
Config->Entry = getString(Args, OPT_entry);
Config->Fini = getString(Args, OPT_fini, "_fini");
Config->Init = getString(Args, OPT_init, "_init");
+ Config->LtoAAPipeline = getString(Args, OPT_lto_aa_pipeline);
Config->LtoNewPmPasses = getString(Args, OPT_lto_newpm_passes);
Config->OutputFile = getString(Args, OPT_o);
Config->SoName = getString(Args, OPT_soname);
Modified: lld/trunk/ELF/LTO.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/LTO.cpp?rev=271605&r1=271604&r2=271605&view=diff
==============================================================================
--- lld/trunk/ELF/LTO.cpp (original)
+++ lld/trunk/ELF/LTO.cpp Thu Jun 2 17:58:11 2016
@@ -66,6 +66,13 @@ static void runNewCustomLtoPasses(Module
PassBuilder PB(&TM);
AAManager AA;
+
+ // Parse a custom AA pipeline if asked to.
+ if (!PB.parseAAPipeline(AA, Config->LtoAAPipeline)) {
+ error("Unable to parse AA pipeline description: " + Config->LtoAAPipeline);
+ return;
+ }
+
LoopAnalysisManager LAM;
FunctionAnalysisManager FAM;
CGSCCAnalysisManager CGAM;
Modified: lld/trunk/ELF/Options.td
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Options.td?rev=271605&r1=271604&r2=271605&view=diff
==============================================================================
--- lld/trunk/ELF/Options.td (original)
+++ lld/trunk/ELF/Options.td Thu Jun 2 17:58:11 2016
@@ -260,6 +260,8 @@ def alias_version_script_version_script
// LTO-related options.
def lto_jobs : Joined<["--"], "lto-jobs=">,
HelpText<"Number of threads to run codegen">;
+def lto_aa_pipeline : Joined<["--"], "lto-aa-pipeline=">,
+ HelpText<"AA pipeline to run during LTO. Used in conjunction with -lto-newpm-passes">;
def lto_newpm_passes : Joined<["--"], "lto-newpm-passes=">,
HelpText<"Passes to run during LTO">;
def disable_verify : Flag<["-"], "disable-verify">;
Modified: lld/trunk/test/ELF/lto/ltopasses-custom.ll
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/lto/ltopasses-custom.ll?rev=271605&r1=271604&r2=271605&view=diff
==============================================================================
--- lld/trunk/test/ELF/lto/ltopasses-custom.ll (original)
+++ lld/trunk/test/ELF/lto/ltopasses-custom.ll Thu Jun 2 17:58:11 2016
@@ -1,6 +1,7 @@
; REQUIRES: x86
; RUN: llvm-as %s -o %t.o
-; RUN: ld.lld -m elf_x86_64 %t.o -o %t.so -save-temps --lto-newpm-passes=ipsccp -shared
+; RUN: ld.lld -m elf_x86_64 %t.o -o %t.so -save-temps --lto-aa-pipeline=basic-aa \
+; RUN: --lto-newpm-passes=ipsccp -shared
; RUN: ld.lld -m elf_x86_64 %t.o -o %t2.so -save-temps --lto-newpm-passes=loweratomic -shared
; RUN: llvm-dis %t.so.lto.opt.bc -o - | FileCheck %s
; RUN: llvm-dis %t2.so.lto.opt.bc -o - | FileCheck %s --check-prefix=ATOMIC
More information about the llvm-commits
mailing list