diff options
| author | Rafael Ávila de Espíndola <respindola@mozilla.com> | 2011-04-13 13:53:19 -0400 |
|---|---|---|
| committer | Rafael Ávila de Espíndola <respindola@mozilla.com> | 2011-04-13 13:54:08 -0400 |
| commit | e7b8db2e633f71da868fac22da5c050dcb922788 (patch) | |
| tree | 2dec6ad5d4352a8ba4905dc5b66706b7aa7fc544 /src/rustllvm | |
| parent | 6909e7ca7872ef8672e3f044b6648f5b78af64d8 (diff) | |
| download | rust-e7b8db2e633f71da868fac22da5c050dcb922788.tar.gz rust-e7b8db2e633f71da868fac22da5c050dcb922788.zip | |
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.
Diffstat (limited to 'src/rustllvm')
| -rw-r--r-- | src/rustllvm/Passes.cpp | 14 | ||||
| -rw-r--r-- | src/rustllvm/RustWrapper.cpp | 5 | ||||
| -rw-r--r-- | src/rustllvm/rustllvm.def.in | 2 |
3 files changed, 21 insertions, 0 deletions
diff --git a/src/rustllvm/Passes.cpp b/src/rustllvm/Passes.cpp new file mode 100644 index 00000000000..cde4f9d34c1 --- /dev/null +++ b/src/rustllvm/Passes.cpp @@ -0,0 +1,14 @@ +#include "llvm/Analysis/Passes.h" +#include "llvm/PassManager.h" +#include "llvm-c/Core.h" + +using namespace llvm; +extern "C" { + void LLVMAddTypeBasedAliasAnalysisPass(LLVMPassManagerRef PM) { + unwrap(PM)->add(createTypeBasedAliasAnalysisPass()); + } + + void LLVMAddBasicAliasAnalysisPass(LLVMPassManagerRef PM) { + unwrap(PM)->add(createBasicAliasAnalysisPass()); + } +} diff --git a/src/rustllvm/RustWrapper.cpp b/src/rustllvm/RustWrapper.cpp index 34346914940..aa17184ceb9 100644 --- a/src/rustllvm/RustWrapper.cpp +++ b/src/rustllvm/RustWrapper.cpp @@ -31,3 +31,8 @@ extern "C" const char *LLVMRustGetLastError(void) { LLVMOpaqueObjectFile* (*RustHackToFetchObjectO)(LLVMOpaqueMemoryBuffer*) = LLVMCreateObjectFile; + +extern "C" void LLVMAddBasicAliasAnalysisPass(LLVMPassManagerRef PM); + +void (*RustHackToFetchPassesO)(LLVMPassManagerRef PM) = + LLVMAddBasicAliasAnalysisPass; diff --git a/src/rustllvm/rustllvm.def.in b/src/rustllvm/rustllvm.def.in index d314c253e88..6067c3838fb 100644 --- a/src/rustllvm/rustllvm.def.in +++ b/src/rustllvm/rustllvm.def.in @@ -15,6 +15,7 @@ LLVMAddAggressiveDCEPass LLVMAddAlias LLVMAddArgumentPromotionPass LLVMAddAttribute +LLVMaddBasicAliasAnalysisPass LLVMAddCFGSimplificationPass LLVMAddCase LLVMAddConstantMergePass @@ -67,6 +68,7 @@ LLVMAddStripDeadPrototypesPass LLVMAddStripSymbolsPass LLVMAddTailCallEliminationPass LLVMAddTargetData +LLVMAddTypeBasedAliasAnalysisPass LLVMAddTypeName LLVMAddVerifierPass LLVMAlignOf |
