about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorBjörn Steinbrink <bsteinbr@gmail.com>2014-08-24 00:03:56 +0200
committerBjörn Steinbrink <bsteinbr@gmail.com>2014-08-24 01:08:58 +0200
commitbbc66332fe8b966770290f784045b9757d66d126 (patch)
tree291fb836d23af4396e5d4a7135f809a64dcb7c1f /src
parent03fd90be459650160a4edefbc78588a938db2f8c (diff)
downloadrust-bbc66332fe8b966770290f784045b9757d66d126.tar.gz
rust-bbc66332fe8b966770290f784045b9757d66d126.zip
Enable the MergeFunc pass
Fixes #9536
Diffstat (limited to 'src')
-rw-r--r--src/librustc/back/link.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/librustc/back/link.rs b/src/librustc/back/link.rs
index 7c2b0ba6168..9ce0e3a3357 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));
+            }
+            _ => {}
+        };
     }
 }