diff options
author | Davide Italiano <davide@freebsd.org> | 2016-09-16 21:03:21 +0000 |
---|---|---|
committer | Davide Italiano <davide@freebsd.org> | 2016-09-16 21:03:21 +0000 |
commit | 463cfe4e607ccbf6c9c7d6f24c8e803921ca597e (patch) | |
tree | 045c20175af9ee55b5751dcec2eaa8ef2f48bdb1 /lib/LTO/LTOBackend.cpp | |
parent | 740da34c340f913112358b3baa566fbc7f773e8d (diff) |
[LTO] Add ability to parse AA pipelines.
This is supposed to be a drop in replacement for what lld
provides via --lto-newpm-aa-pipeline.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281774 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/LTO/LTOBackend.cpp')
-rw-r--r-- | lib/LTO/LTOBackend.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/LTO/LTOBackend.cpp b/lib/LTO/LTOBackend.cpp index 76b20b5130f..9e53972a9d4 100644 --- a/lib/LTO/LTOBackend.cpp +++ b/lib/LTO/LTOBackend.cpp @@ -124,9 +124,17 @@ createTargetMachine(Config &Conf, StringRef TheTriple, static void runNewPMCustomPasses(Module &Mod, TargetMachine *TM, std::string PipelineDesc, + std::string AAPipelineDesc, bool DisableVerify) { PassBuilder PB(TM); AAManager AA; + + // Parse a custom AA pipeline if asked to. + if (!AAPipelineDesc.empty()) + if (!PB.parseAAPipeline(AA, AAPipelineDesc)) + report_fatal_error("unable to parse AA pipeline description: " + + AAPipelineDesc); + LoopAnalysisManager LAM; FunctionAnalysisManager FAM; CGSCCAnalysisManager CGAM; @@ -185,7 +193,8 @@ bool opt(Config &Conf, TargetMachine *TM, unsigned Task, Module &Mod, if (Conf.OptPipeline.empty()) runOldPMPasses(Conf, Mod, TM, IsThinLto); else - runNewPMCustomPasses(Mod, TM, Conf.OptPipeline, Conf.DisableVerify); + runNewPMCustomPasses(Mod, TM, Conf.OptPipeline, Conf.AAPipeline, + Conf.DisableVerify); return !Conf.PostOptModuleHook || Conf.PostOptModuleHook(Task, Mod); } |