about summary refs log tree commit diff
path: root/src/comp
diff options
context:
space:
mode:
Diffstat (limited to 'src/comp')
-rw-r--r--src/comp/lib/llvm.rs7
-rw-r--r--src/comp/middle/trans.rs12
2 files changed, 10 insertions, 9 deletions
diff --git a/src/comp/lib/llvm.rs b/src/comp/lib/llvm.rs
index 047059240b3..430e8cdb3b8 100644
--- a/src/comp/lib/llvm.rs
+++ b/src/comp/lib/llvm.rs
@@ -749,7 +749,7 @@ native mod llvm = llvm_lib {
     fn LLVMAddFunctionInliningPass(PassManagerRef PM);
     fn LLVMAddFunctionAttrsPass(PassManagerRef PM);
     fn LLVMAddScalarReplAggregatesPass(PassManagerRef PM);
-    // fn LLVMAddScalarReplAggregatesPassSSA(PassManagerRef PM);
+    fn LLVMAddScalarReplAggregatesPassSSA(PassManagerRef PM);
     fn LLVMAddJumpThreadingPass(PassManagerRef PM);
     fn LLVMAddConstantPropagationPass(PassManagerRef PM);
     fn LLVMAddReassociatePass(PassManagerRef PM);
@@ -770,10 +770,11 @@ native mod llvm = llvm_lib {
     fn LLVMAddIndVarSimplifyPass(PassManagerRef PM);
     fn LLVMAddAggressiveDCEPass(PassManagerRef PM);
     fn LLVMAddGlobalDCEPass(PassManagerRef PM);
-    // fn LLVMAddCorrelatedValuePropagationPass(PassManagerRef PM);
+    fn LLVMAddCorrelatedValuePropagationPass(PassManagerRef PM);
     fn LLVMAddPruneEHPass(PassManagerRef PM);
     fn LLVMAddSimplifyLibCallsPass(PassManagerRef PM);
-    // fn LLVMAddLoopIdiomPass(PassManagerRef PM);
+    fn LLVMAddLoopIdiomPass(PassManagerRef PM);
+    fn LLVMAddEarlyCSEPass(PassManagerRef PM);
 
     /** Destroys a memory buffer. */
     fn LLVMDisposeMemoryBuffer(MemoryBufferRef MemBuf);
diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs
index 7d9e13b084d..43a115b59d6 100644
--- a/src/comp/middle/trans.rs
+++ b/src/comp/middle/trans.rs
@@ -6621,7 +6621,7 @@ fn run_passes(ModuleRef llmod, bool opt) {
         // createStandardFunctionPasses
         llvm.LLVMAddCFGSimplificationPass(fpm.llpm);
         llvm.LLVMAddScalarReplAggregatesPass(fpm.llpm);
-        //llvm.LLVMAddEarlyCSEPass(fpm.llpm);
+        llvm.LLVMAddEarlyCSEPass(fpm.llpm);
 
         llvm.LLVMRunPassManager(fpm.llpm, llmod);
 
@@ -6637,11 +6637,11 @@ fn run_passes(ModuleRef llmod, bool opt) {
         // FIXME: crashes!
         // llvm.LLVMAddFunctionAttrsPass(pm.llpm);
 
-        // llvm.LLVMAddScalarReplAggregatesPassSSA(pm.llpm);
-        // llvm.LLVMAddEarlyCSEPass(pm.llpm);
+        llvm.LLVMAddScalarReplAggregatesPassSSA(pm.llpm);
+        llvm.LLVMAddEarlyCSEPass(pm.llpm);
         llvm.LLVMAddSimplifyLibCallsPass(pm.llpm);
         llvm.LLVMAddJumpThreadingPass(pm.llpm);
-        // llvm.LLVMAddCorrelatedValuePropagationPass(pm.llpm);
+        llvm.LLVMAddCorrelatedValuePropagationPass(pm.llpm);
         llvm.LLVMAddCFGSimplificationPass(pm.llpm);
         llvm.LLVMAddInstructionCombiningPass(pm.llpm);
         llvm.LLVMAddTailCallEliminationPass(pm.llpm);
@@ -6652,7 +6652,7 @@ fn run_passes(ModuleRef llmod, bool opt) {
         llvm.LLVMAddLoopUnswitchPass(pm.llpm);
         llvm.LLVMAddInstructionCombiningPass(pm.llpm);
         llvm.LLVMAddIndVarSimplifyPass(pm.llpm);
-        // llvm.LLVMAddLoopIdiomPass(pm.llpm);
+        llvm.LLVMAddLoopIdiomPass(pm.llpm);
         llvm.LLVMAddLoopDeletionPass(pm.llpm);
         llvm.LLVMAddLoopUnrollPass(pm.llpm);
         llvm.LLVMAddInstructionCombiningPass(pm.llpm);
@@ -6661,7 +6661,7 @@ fn run_passes(ModuleRef llmod, bool opt) {
         llvm.LLVMAddSCCPPass(pm.llpm);
         llvm.LLVMAddInstructionCombiningPass(pm.llpm);
         llvm.LLVMAddJumpThreadingPass(pm.llpm);
-        // llvm.LLVMAddCorrelatedValuePropagationPass(pm.llpm);
+        llvm.LLVMAddCorrelatedValuePropagationPass(pm.llpm);
         llvm.LLVMAddDeadStoreEliminationPass(pm.llpm);
         llvm.LLVMAddAggressiveDCEPass(pm.llpm);
         llvm.LLVMAddCFGSimplificationPass(pm.llpm);