diff options
| author | Rafael Ávila de Espíndola <[email protected]> | 2011-04-12 15:33:39 -0400 |
|---|---|---|
| committer | Rafael Ávila de Espíndola <[email protected]> | 2011-04-12 15:33:39 -0400 |
| commit | dd6fc607a46848b0960fc8095506cb8ffe3dd53d (patch) | |
| tree | 3d7045d862a3c585152fcadf907f12037a8ba1d2 | |
| parent | Factor out creation of calls into ExtFmt.RT (diff) | |
| download | rust-dd6fc607a46848b0960fc8095506cb8ffe3dd53d.tar.xz rust-dd6fc607a46848b0960fc8095506cb8ffe3dd53d.zip | |
Enable more optimizations.
| -rw-r--r-- | src/comp/lib/llvm.rs | 7 | ||||
| -rw-r--r-- | src/comp/middle/trans.rs | 12 |
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); |