Skip to content

Commit 9320b8b

Browse files
committed
---
yaml --- r: 2406 b: refs/heads/master c: d089d9f h: refs/heads/master v: v3
1 parent fa5b916 commit 9320b8b

File tree

5 files changed

+37
-2
lines changed

5 files changed

+37
-2
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/master: 5e2088f2faf5e53ebf8af52d9bd7e034c5fc61c2
2+
refs/heads/master: d089d9f9ed01464940ef6e383ec239bbd5612e8c

trunk/mk/rustllvm.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
######################################################################
44

55
RUSTLLVM_LIB_CS := $(addprefix rustllvm/, \
6-
MachOObjectFile.cpp Passes.cpp)
6+
MachOObjectFile.cpp Passes.cpp Passes2.cpp)
77

88
RUSTLLVM_OBJS_CS := $(addprefix rustllvm/, RustWrapper.cpp)
99

trunk/src/comp/lib/llvm.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -802,6 +802,16 @@ native mod llvm = llvm_lib {
802802
fn LLVMAddTypeBasedAliasAnalysisPass(PassManagerRef PM);
803803
fn LLVMAddBasicAliasAnalysisPass(PassManagerRef PM);
804804

805+
// FIXME: Native stubs don't allow this many arguments yet.
806+
/*fn LLVMAddStandardModulePasses(PassManagerRef PM,
807+
uint OptimizationLevel,
808+
Bool OptimizeSize,
809+
Bool UnitAtATime,
810+
Bool UnrollLoops,
811+
Bool SimplifyLibCalls,
812+
Bool HaveExceptions,
813+
uint InliningThreshold);*/
814+
805815
/** Destroys a memory buffer. */
806816
fn LLVMDisposeMemoryBuffer(MemoryBufferRef MemBuf);
807817

trunk/src/rustllvm/Passes2.cpp

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#include "llvm/Analysis/Passes.h"
2+
#include "llvm/Support/StandardPasses.h"
3+
#include "llvm/PassManager.h"
4+
#include "llvm-c/Core.h"
5+
#include <cstdlib>
6+
7+
using namespace llvm;
8+
9+
extern "C" void LLVMAddStandardModulePasses(LLVMPassManagerRef PM,
10+
unsigned int OptimizationLevel, bool OptimizeSize, bool UnitAtATime,
11+
bool UnrollLoops, bool SimplifyLibCalls, bool HaveExceptions,
12+
unsigned int InliningThreshold) {
13+
Pass *InliningPass;
14+
if (InliningThreshold)
15+
InliningPass = createFunctionInliningPass(InliningThreshold);
16+
else
17+
InliningPass = NULL;
18+
19+
createStandardModulePasses(unwrap(PM), OptimizationLevel, OptimizeSize,
20+
UnitAtATime, UnrollLoops, SimplifyLibCalls,
21+
HaveExceptions, InliningPass);
22+
}
23+
24+

trunk/src/rustllvm/rustllvm.def.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ LLVMAddScalarReplAggregatesPass
6868
LLVMAddScalarReplAggregatesPassSSA
6969
LLVMAddScalarReplAggregatesPassWithThreshold
7070
LLVMAddSimplifyLibCallsPass
71+
LLVMAddStandardModulePasses
7172
LLVMAddStripDeadPrototypesPass
7273
LLVMAddStripSymbolsPass
7374
LLVMAddTailCallEliminationPass

0 commit comments

Comments
 (0)