rustllvm: Add a binding to the LLVM standard module passes
This commit is contained in:
24
src/rustllvm/Passes2.cpp
Normal file
24
src/rustllvm/Passes2.cpp
Normal file
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -68,6 +68,7 @@ LLVMAddScalarReplAggregatesPass
|
||||
LLVMAddScalarReplAggregatesPassSSA
|
||||
LLVMAddScalarReplAggregatesPassWithThreshold
|
||||
LLVMAddSimplifyLibCallsPass
|
||||
LLVMAddStandardModulePasses
|
||||
LLVMAddStripDeadPrototypesPass
|
||||
LLVMAddStripSymbolsPass
|
||||
LLVMAddTailCallEliminationPass
|
||||
|
||||
Reference in New Issue
Block a user