From f2158a8ef06c87dc979b47e98dd2e8d8493c11ff Mon Sep 17 00:00:00 2001 From: Robert Lougher Date: Wed, 20 Mar 2019 19:08:18 +0000 Subject: Resubmit r356511 "[TailCallElim] Add tailcall elimination pass to LTO pipelines" Failing LLD tests have been fixed in r356593. llvm-svn: 356594 --- llvm/lib/Passes/PassBuilder.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'llvm/lib/Passes') diff --git a/llvm/lib/Passes/PassBuilder.cpp b/llvm/lib/Passes/PassBuilder.cpp index 2baff899010..ba0d6c2bd68 100644 --- a/llvm/lib/Passes/PassBuilder.cpp +++ b/llvm/lib/Passes/PassBuilder.cpp @@ -1185,6 +1185,10 @@ PassBuilder::buildLTODefaultPipeline(OptimizationLevel Level, bool DebugLogging, // Break up allocas FPM.addPass(SROA()); + // LTO provides additional opportunities for tailcall elimination due to + // link-time inlining, and visibility of nocapture attribute. + FPM.addPass(TailCallElimPass()); + // Run a few AA driver optimizations here and now to cleanup the code. MPM.addPass(createModuleToFunctionPassAdaptor(std::move(FPM))); -- cgit v1.2.3