1
- import driver. session ;
2
- import lib. llvm . llvm ;
3
- import middle. trans ;
4
- import std. Str ;
5
- import std. FS ;
6
-
7
- import lib. llvm . llvm . ModuleRef ;
8
- import lib. llvm . llvm . ValueRef ;
9
- import lib. llvm . mk_pass_manager ;
10
- import lib. llvm . mk_target_data ;
11
- import lib. llvm . mk_type_names ;
12
- import lib. llvm . False ;
13
- import lib. llvm . True ;
1
+ import driver:: session;
2
+ import lib:: llvm:: llvm;
3
+ import middle:: trans;
4
+ import std:: _str ;
5
+ import std:: fs ;
6
+
7
+ import lib:: llvm:: llvm:: ModuleRef ;
8
+ import lib:: llvm:: llvm:: ValueRef ;
9
+ import lib:: llvm:: mk_pass_manager;
10
+ import lib:: llvm:: mk_target_data;
11
+ import lib:: llvm:: mk_type_names;
12
+ import lib:: llvm:: False ;
13
+ import lib:: llvm:: True ;
14
14
15
15
tag output_type {
16
16
output_type_none;
@@ -19,32 +19,32 @@ tag output_type {
19
19
output_type_object;
20
20
}
21
21
22
- fn llvm_err ( session . session sess, str msg) {
23
- auto buf = llvm. LLVMRustGetLastError ( ) ;
22
+ fn llvm_err ( session:: session sess, str msg) {
23
+ auto buf = llvm:: LLVMRustGetLastError ( ) ;
24
24
if ( ( buf as uint ) == 0 u) {
25
25
sess. err ( msg) ;
26
26
} else {
27
- sess. err ( msg + ": " + Str . str_from_cstr ( buf) ) ;
27
+ sess. err ( msg + ": " + _str :: str_from_cstr ( buf) ) ;
28
28
}
29
29
fail;
30
30
}
31
31
32
- fn link_intrinsics ( session . session sess, ModuleRef llmod) {
33
- auto path = FS . connect ( sess. get_opts ( ) . sysroot , "intrinsics.bc" ) ;
32
+ fn link_intrinsics ( session:: session sess, ModuleRef llmod) {
33
+ auto path = fs :: connect ( sess. get_opts ( ) . sysroot , "intrinsics.bc" ) ;
34
34
auto membuf =
35
- llvm. LLVMRustCreateMemoryBufferWithContentsOfFile ( Str . buf ( path) ) ;
35
+ llvm:: LLVMRustCreateMemoryBufferWithContentsOfFile ( _str :: buf ( path) ) ;
36
36
if ( ( membuf as uint ) == 0 u) {
37
37
llvm_err ( sess, "installation problem: couldn't open intrinstics.bc" ) ;
38
38
fail;
39
39
}
40
40
41
- auto llintrinsicsmod = llvm. LLVMRustParseBitcode ( membuf) ;
41
+ auto llintrinsicsmod = llvm:: LLVMRustParseBitcode ( membuf) ;
42
42
if ( ( llintrinsicsmod as uint ) == 0 u) {
43
43
llvm_err ( sess, "installation problem: couldn't parse intrinstics.bc" ) ;
44
44
fail;
45
45
}
46
46
47
- if ( llvm. LLVMLinkModules ( llmod, llintrinsicsmod) == False ) {
47
+ if ( llvm:: LLVMLinkModules ( llmod, llintrinsicsmod) == False ) {
48
48
llvm_err ( sess, "couldn't link the module with the intrinsics" ) ;
49
49
fail;
50
50
}
@@ -64,29 +64,29 @@ mod Write {
64
64
// Decides what to call an intermediate file, given the name of the output
65
65
// and the extension to use.
66
66
fn mk_intermediate_name ( str output_path , str extension ) -> str {
67
- auto dot_pos = Str . index ( output_path, '.' as u8 ) ;
67
+ auto dot_pos = _str :: index ( output_path, '.' as u8 ) ;
68
68
auto stem;
69
69
if ( dot_pos < 0 ) {
70
70
stem = output_path;
71
71
} else {
72
- stem = Str . substr ( output_path, 0 u, dot_pos as uint ) ;
72
+ stem = _str :: substr ( output_path, 0 u, dot_pos as uint ) ;
73
73
}
74
74
ret stem + "." + extension;
75
75
}
76
76
77
- fn run_passes ( session . session sess, ModuleRef llmod, str output ) {
77
+ fn run_passes ( session:: session sess, ModuleRef llmod, str output ) {
78
78
79
79
auto opts = sess. get_opts ( ) ;
80
80
81
81
if ( opts. time_llvm_passes ) {
82
- llvm. LLVMRustEnableTimePasses ( ) ;
82
+ llvm:: LLVMRustEnableTimePasses ( ) ;
83
83
}
84
84
85
85
link_intrinsics ( sess, llmod) ;
86
86
87
87
auto pm = mk_pass_manager ( ) ;
88
- auto td = mk_target_data ( x86. get_data_layout ( ) ) ;
89
- llvm. LLVMAddTargetData ( td. lltd , pm. llpm ) ;
88
+ auto td = mk_target_data ( x86:: get_data_layout ( ) ) ;
89
+ llvm:: LLVMAddTargetData ( td. lltd , pm. llpm ) ;
90
90
91
91
// TODO: run the linter here also, once there are llvm-c bindings for
92
92
// it.
@@ -99,13 +99,13 @@ mod Write {
99
99
if ( opts. optimize ) {
100
100
auto filename = mk_intermediate_name ( output,
101
101
"no-opt.bc" ) ;
102
- llvm. LLVMWriteBitcodeToFile ( llmod,
103
- Str . buf ( filename) ) ;
102
+ llvm:: LLVMWriteBitcodeToFile ( llmod,
103
+ _str :: buf ( filename) ) ;
104
104
}
105
105
}
106
106
case ( _) {
107
107
auto filename = mk_intermediate_name ( output, "bc" ) ;
108
- llvm. LLVMWriteBitcodeToFile ( llmod, Str . buf ( filename) ) ;
108
+ llvm:: LLVMWriteBitcodeToFile ( llmod, _str :: buf ( filename) ) ;
109
109
}
110
110
}
111
111
}
@@ -118,13 +118,13 @@ mod Write {
118
118
// tool?
119
119
if ( opts. optimize ) {
120
120
auto fpm = mk_pass_manager ( ) ;
121
- llvm. LLVMAddTargetData ( td. lltd , fpm. llpm ) ;
122
- llvm. LLVMAddStandardFunctionPasses ( fpm. llpm , 2 u) ;
123
- llvm. LLVMRunPassManager ( fpm. llpm , llmod) ;
121
+ llvm:: LLVMAddTargetData ( td. lltd , fpm. llpm ) ;
122
+ llvm:: LLVMAddStandardFunctionPasses ( fpm. llpm , 2 u) ;
123
+ llvm:: LLVMRunPassManager ( fpm. llpm , llmod) ;
124
124
125
125
// TODO: On -O3, use 275 instead of 225 for the inlining
126
126
// threshold.
127
- llvm. LLVMAddStandardModulePasses ( pm. llpm ,
127
+ llvm:: LLVMAddStandardModulePasses ( pm. llpm ,
128
128
2 u, // optimization level
129
129
False , // optimize for size
130
130
True , // unit-at-a-time
@@ -135,7 +135,7 @@ mod Write {
135
135
}
136
136
137
137
if ( opts. verify ) {
138
- llvm. LLVMAddVerifierPass ( pm. llpm ) ;
138
+ llvm:: LLVMAddVerifierPass ( pm. llpm ) ;
139
139
}
140
140
141
141
// TODO: Write .s if -c was specified and -save-temps was on.
@@ -157,32 +157,32 @@ mod Write {
157
157
case ( _) {
158
158
auto filename = mk_intermediate_name ( output,
159
159
"opt.bc" ) ;
160
- llvm. LLVMRunPassManager ( pm. llpm , llmod) ;
161
- llvm. LLVMWriteBitcodeToFile ( llmod,
162
- Str . buf ( filename) ) ;
160
+ llvm:: LLVMRunPassManager ( pm. llpm , llmod) ;
161
+ llvm:: LLVMWriteBitcodeToFile ( llmod,
162
+ _str :: buf ( filename) ) ;
163
163
pm = mk_pass_manager ( ) ;
164
164
}
165
165
}
166
166
}
167
167
168
- llvm. LLVMRustWriteOutputFile ( pm. llpm , llmod,
169
- Str . buf ( x86. get_target_triple ( ) ) ,
170
- Str . buf ( output) ,
168
+ llvm:: LLVMRustWriteOutputFile ( pm. llpm , llmod,
169
+ _str :: buf ( x86:: get_target_triple ( ) ) ,
170
+ _str :: buf ( output) ,
171
171
FileType ) ;
172
- llvm. LLVMDisposeModule ( llmod) ;
172
+ llvm:: LLVMDisposeModule ( llmod) ;
173
173
if ( opts. time_llvm_passes ) {
174
- llvm. LLVMRustPrintPassTimings ( ) ;
174
+ llvm:: LLVMRustPrintPassTimings ( ) ;
175
175
}
176
176
ret;
177
177
}
178
178
179
- llvm. LLVMRunPassManager ( pm. llpm, llmod) ;
179
+ llvm:: LLVMRunPassManager ( pm. llpm, llmod) ;
180
180
181
- llvm. LLVMWriteBitcodeToFile ( llmod, Str . buf( output) ) ;
182
- llvm. LLVMDisposeModule ( llmod) ;
181
+ llvm:: LLVMWriteBitcodeToFile ( llmod, _str :: buf( output) ) ;
182
+ llvm:: LLVMDisposeModule ( llmod) ;
183
183
184
184
if ( opts. time_llvm_passes) {
185
- llvm. LLVMRustPrintPassTimings ( ) ;
185
+ llvm:: LLVMRustPrintPassTimings ( ) ;
186
186
}
187
187
}
188
188
}
0 commit comments