aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 04705924..430e8cdb 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 7d9e13b0..43a115b5 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);