diff options
| author | Patrick Walton <[email protected]> | 2011-05-06 12:02:04 -0700 |
|---|---|---|
| committer | Patrick Walton <[email protected]> | 2011-05-06 12:38:00 -0700 |
| commit | d089d9f9ed01464940ef6e383ec239bbd5612e8c (patch) | |
| tree | bbf2f7067e12ab91ae9536dd49fe49e6bfbebb9d /src/rustllvm | |
| parent | rustc: For stack local derived tydescs, allocate the root tydesc separately f... (diff) | |
| download | rust-d089d9f9ed01464940ef6e383ec239bbd5612e8c.tar.xz rust-d089d9f9ed01464940ef6e383ec239bbd5612e8c.zip | |
rustllvm: Add a binding to the LLVM standard module passes
Diffstat (limited to 'src/rustllvm')
| -rw-r--r-- | src/rustllvm/Passes2.cpp | 24 | ||||
| -rw-r--r-- | src/rustllvm/rustllvm.def.in | 1 |
2 files changed, 25 insertions, 0 deletions
diff --git a/src/rustllvm/Passes2.cpp b/src/rustllvm/Passes2.cpp new file mode 100644 index 00000000..a0a6a20c --- /dev/null +++ b/src/rustllvm/Passes2.cpp @@ -0,0 +1,24 @@ +#include "llvm/Analysis/Passes.h" +#include "llvm/Support/StandardPasses.h" +#include "llvm/PassManager.h" +#include "llvm-c/Core.h" +#include <cstdlib> + +using namespace llvm; + +extern "C" void LLVMAddStandardModulePasses(LLVMPassManagerRef PM, + unsigned int OptimizationLevel, bool OptimizeSize, bool UnitAtATime, + bool UnrollLoops, bool SimplifyLibCalls, bool HaveExceptions, + unsigned int InliningThreshold) { + Pass *InliningPass; + if (InliningThreshold) + InliningPass = createFunctionInliningPass(InliningThreshold); + else + InliningPass = NULL; + + createStandardModulePasses(unwrap(PM), OptimizationLevel, OptimizeSize, + UnitAtATime, UnrollLoops, SimplifyLibCalls, + HaveExceptions, InliningPass); +} + + diff --git a/src/rustllvm/rustllvm.def.in b/src/rustllvm/rustllvm.def.in index 748c77aa..e52f2908 100644 --- a/src/rustllvm/rustllvm.def.in +++ b/src/rustllvm/rustllvm.def.in @@ -68,6 +68,7 @@ LLVMAddScalarReplAggregatesPass LLVMAddScalarReplAggregatesPassSSA LLVMAddScalarReplAggregatesPassWithThreshold LLVMAddSimplifyLibCallsPass +LLVMAddStandardModulePasses LLVMAddStripDeadPrototypesPass LLVMAddStripSymbolsPass LLVMAddTailCallEliminationPass |