File tree 5 files changed +11
-1
lines changed
5 files changed +11
-1
lines changed Original file line number Diff line number Diff line change 1
1
---
2
- refs/heads/master: c9003d301f602cb44d8cc3fd464c95b09e08548e
2
+ refs/heads/master: 329f045d4c5f27275dcf1cadf8d0f51919ba8027
Original file line number Diff line number Diff line change @@ -91,6 +91,7 @@ mod write {
91
91
fn run_passes ( sess : session:: session , llmod : ModuleRef , output : str ) {
92
92
let opts = sess. get_opts ( ) ;
93
93
if opts. time_llvm_passes { llvm:: LLVMRustEnableTimePasses ( ) ; }
94
+ if opts. stack_growth { llvm:: LLVMRustEnableSegmentedStacks ( ) ; }
94
95
link_intrinsics ( sess, llmod) ;
95
96
let pm = mk_pass_manager ( ) ;
96
97
let td = mk_target_data ( x86:: get_data_layout ( ) ) ;
Original file line number Diff line number Diff line change @@ -868,6 +868,8 @@ native "c-stack-cdecl" mod llvm = "rustllvm" {
868
868
869
869
/** Turn on LLVM pass-timing. */
870
870
fn LLVMRustEnableTimePasses ( ) ;
871
+ /** Turn on LLVM segmented stacks. */
872
+ fn LLVMRustEnableSegmentedStacks ( ) ;
871
873
872
874
/** Print the pass timings since static dtors aren't picking them up. */
873
875
fn LLVMRustPrintPassTimings ( ) ;
Original file line number Diff line number Diff line change @@ -123,3 +123,9 @@ extern "C" void LLVMRustPrintPassTimings() {
123
123
raw_fd_ostream OS (2 , false ); // stderr.
124
124
TimerGroup::printAll (OS);
125
125
}
126
+
127
+ extern bool llvm::EnableSegmentedStacks;
128
+ extern " C" void LLVMRustEnableSegmentedStacks () {
129
+ EnableSegmentedStacks = true ;
130
+ }
131
+
Original file line number Diff line number Diff line change @@ -6,6 +6,7 @@ LLVMRustGetHostTriple
6
6
LLVMRustConstSmallInt
7
7
LLVMRustParseBitcode
8
8
LLVMRustPrintPassTimings
9
+ LLVMRustEnableSegmentedStacks
9
10
LLVMLinkModules
10
11
LLVMCreateObjectFile
11
12
LLVMDisposeObjectFile
You can’t perform that action at this time.
0 commit comments