From e7b8db2e633f71da868fac22da5c050dcb922788 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20=C3=81vila=20de=20Esp=C3=ADndola?= Date: Wed, 13 Apr 2011 13:53:19 -0400 Subject: Enable alias analysis and the function attributes pass. The C API extension is already upstream, we can drop the local copy once the bots are updated. --- src/comp/lib/llvm.rs | 2 ++ src/comp/middle/trans.rs | 9 +++++---- 2 files changed, 7 insertions(+), 4 deletions(-) (limited to 'src/comp') diff --git a/src/comp/lib/llvm.rs b/src/comp/lib/llvm.rs index 430e8cdb..67703205 100644 --- a/src/comp/lib/llvm.rs +++ b/src/comp/lib/llvm.rs @@ -775,6 +775,8 @@ native mod llvm = llvm_lib { fn LLVMAddSimplifyLibCallsPass(PassManagerRef PM); fn LLVMAddLoopIdiomPass(PassManagerRef PM); fn LLVMAddEarlyCSEPass(PassManagerRef PM); + fn LLVMAddTypeBasedAliasAnalysisPass(PassManagerRef PM); + fn LLVMAddBasicAliasAnalysisPass(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 6c4620d2..99ac225f 100644 --- a/src/comp/middle/trans.rs +++ b/src/comp/middle/trans.rs @@ -6647,6 +6647,8 @@ fn run_passes(ModuleRef llmod, bool opt) { auto fpm = mk_pass_manager(); // createStandardFunctionPasses + llvm.LLVMAddTypeBasedAliasAnalysisPass(fpm.llpm); + llvm.LLVMAddBasicAliasAnalysisPass(fpm.llpm); llvm.LLVMAddCFGSimplificationPass(fpm.llpm); llvm.LLVMAddScalarReplAggregatesPass(fpm.llpm); llvm.LLVMAddEarlyCSEPass(fpm.llpm); @@ -6654,6 +6656,8 @@ fn run_passes(ModuleRef llmod, bool opt) { llvm.LLVMRunPassManager(fpm.llpm, llmod); // createStandardModulePasses + llvm.LLVMAddTypeBasedAliasAnalysisPass(pm.llpm); + llvm.LLVMAddBasicAliasAnalysisPass(pm.llpm); llvm.LLVMAddGlobalOptimizerPass(pm.llpm); llvm.LLVMAddIPSCCPPass(pm.llpm); llvm.LLVMAddDeadArgEliminationPass(pm.llpm); @@ -6661,10 +6665,7 @@ fn run_passes(ModuleRef llmod, bool opt) { llvm.LLVMAddCFGSimplificationPass(pm.llpm); llvm.LLVMAddPruneEHPass(pm.llpm); llvm.LLVMAddFunctionInliningPass(pm.llpm); - - // FIXME: crashes! - // llvm.LLVMAddFunctionAttrsPass(pm.llpm); - + llvm.LLVMAddFunctionAttrsPass(pm.llpm); llvm.LLVMAddScalarReplAggregatesPassSSA(pm.llpm); llvm.LLVMAddEarlyCSEPass(pm.llpm); llvm.LLVMAddSimplifyLibCallsPass(pm.llpm); -- cgit v1.2.3