# HG changeset patch # User anatofuz # Date 1586846600 -32400 # Node ID 980e56f2e095e00504094d2b10961e1c049ac4d7 # Parent e037d1dd73694b50f120926d0a2e292dd535c720 ... diff -r e037d1dd7369 -r 980e56f2e095 llvm/lib/Passes/PassBuilder.cpp --- a/llvm/lib/Passes/PassBuilder.cpp Tue Mar 24 17:35:46 2020 +0900 +++ b/llvm/lib/Passes/PassBuilder.cpp Tue Apr 14 15:43:20 2020 +0900 @@ -637,6 +637,9 @@ FunctionPassManager FPM; FPM.addPass(createFunctionToLoopPassAdaptor( LoopRotatePass(), EnableMSSALoopDependency, DebugLogging)); +#ifndef noCbC + FPM.addPass(TailCallElimPass()); +#endif MPM.addPass(createModuleToFunctionPassAdaptor(std::move(FPM))); // Add the profile lowering pass. diff -r e037d1dd7369 -r 980e56f2e095 llvm/lib/Transforms/IPO/PassManagerBuilder.cpp --- a/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp Tue Mar 24 17:35:46 2020 +0900 +++ b/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp Tue Apr 14 15:43:20 2020 +0900 @@ -930,8 +930,12 @@ PM.add(createWholeProgramDevirtPass(ExportSummary, nullptr)); // That's all we need at opt level 1. - if (OptLevel == 1) + if (OptLevel == 1) { +#ifndef noCbC + PM.add(createTailCallEliminationPass(false)); +#endif return; + } // Now that we internalized some globals, see if we can hack on them! PM.add(createGlobalOptimizerPass());