diff --git a/src/librustc/back/link.rs b/src/librustc/back/link.rs index 7c2b0ba616817..9ce0e3a33577d 100644 --- a/src/librustc/back/link.rs +++ b/src/librustc/back/link.rs @@ -536,6 +536,13 @@ pub mod write { llvm::LLVMPassManagerBuilderPopulateFunctionPassManager(builder, fpm); llvm::LLVMPassManagerBuilderPopulateModulePassManager(builder, mpm); llvm::LLVMPassManagerBuilderDispose(builder); + + match opt { + llvm::CodeGenLevelDefault | llvm::CodeGenLevelAggressive => { + "mergefunc".with_c_str(|s| llvm::LLVMRustAddPass(mpm, s)); + } + _ => {} + }; } }