@@ -208,57 +208,69 @@ fn compile_upto(sess: Session, cfg: ast::crate_cfg,
208
208
let rp_set = time ( time_passes, ~"region parameterization inference", ||
209
209
middle:: region:: determine_rp_in_crate ( sess, ast_map, def_map, crate ) ) ;
210
210
211
- let ty_cx = ty:: mk_ctxt ( sess, def_map, ast_map, freevars,
212
- region_map, rp_set, move lang_items, crate ) ;
213
211
214
- let ( method_map, vtable_map) = time ( time_passes, ~"typechecking", ||
215
- typeck:: check_crate ( ty_cx,
216
- trait_map,
217
- crate ) ) ;
218
- // These next two const passes can probably be merged
219
- time ( time_passes, ~"const marking", ||
220
- middle:: const_eval:: process_crate ( crate , def_map, ty_cx) ) ;
212
+ let outputs = outputs. get ( ) ;
221
213
222
- time ( time_passes, ~"const checking", ||
223
- middle:: check_const:: check_crate ( sess, crate , ast_map, def_map,
224
- method_map, ty_cx) ) ;
214
+ let ( llmod, link_meta) = {
225
215
226
- if upto == cu_typeck { return { crate : crate , tcx: Some ( ty_cx) } ; }
216
+ let ty_cx = ty:: mk_ctxt ( sess, def_map, ast_map, freevars,
217
+ region_map, rp_set, move lang_items, crate ) ;
227
218
228
- time ( time_passes, ~"privacy checking", ||
229
- middle:: privacy:: check_crate ( ty_cx, & method_map, crate ) ) ;
219
+ let ( method_map, vtable_map) =
220
+ time ( time_passes, ~"typechecking", ||
221
+ typeck:: check_crate ( ty_cx,
222
+ trait_map,
223
+ crate ) ) ;
230
224
231
- time ( time_passes, ~"loop checking", ||
232
- middle:: check_loop:: check_crate ( ty_cx, crate ) ) ;
225
+ // These next two const passes can probably be merged
226
+ time ( time_passes, ~"const marking", ||
227
+ middle:: const_eval:: process_crate ( crate , def_map, ty_cx) ) ;
233
228
234
- time ( time_passes, ~"alt checking", ||
235
- middle:: check_alt:: check_crate ( ty_cx, crate ) ) ;
229
+ time ( time_passes, ~"const checking", ||
230
+ middle:: check_const:: check_crate ( sess, crate , ast_map, def_map,
231
+ method_map, ty_cx) ) ;
236
232
237
- let last_use_map = time ( time_passes, ~"liveness checking", ||
238
- middle:: liveness:: check_crate ( ty_cx, method_map, crate ) ) ;
233
+ if upto == cu_typeck { return { crate : crate , tcx: Some ( ty_cx) } ; }
239
234
240
- let ( root_map, mutbl_map) = time ( time_passes, ~"borrow checking", ||
241
- middle:: borrowck:: check_crate ( ty_cx, method_map,
242
- last_use_map, crate ) ) ;
235
+ time ( time_passes, ~"privacy checking", ||
236
+ middle:: privacy:: check_crate ( ty_cx, & method_map, crate ) ) ;
243
237
244
- time ( time_passes, ~"kind checking", ||
245
- kind :: check_crate ( ty_cx, method_map , last_use_map , crate ) ) ;
238
+ time ( time_passes, ~"loop checking", ||
239
+ middle :: check_loop :: check_crate ( ty_cx, crate ) ) ;
246
240
247
- time ( time_passes, ~"lint checking", || lint:: check_crate ( ty_cx, crate ) ) ;
241
+ time ( time_passes, ~"alt checking", ||
242
+ middle:: check_alt:: check_crate ( ty_cx, crate ) ) ;
248
243
249
- if upto == cu_no_trans { return { crate : crate , tcx: Some ( ty_cx) } ; }
250
- let outputs = outputs. get ( ) ;
244
+ let last_use_map =
245
+ time ( time_passes, ~"liveness checking", ||
246
+ middle:: liveness:: check_crate ( ty_cx, method_map, crate ) ) ;
247
+
248
+ let ( root_map, mutbl_map) =
249
+ time ( time_passes, ~"borrow checking", ||
250
+ middle:: borrowck:: check_crate ( ty_cx, method_map,
251
+ last_use_map, crate ) ) ;
252
+
253
+ time ( time_passes, ~"kind checking", ||
254
+ kind:: check_crate ( ty_cx, method_map, last_use_map, crate ) ) ;
255
+
256
+ time ( time_passes, ~"lint checking", ||
257
+ lint:: check_crate ( ty_cx, crate ) ) ;
251
258
252
- let maps = { mutbl_map: mutbl_map,
253
- root_map: root_map,
254
- last_use_map: last_use_map,
255
- method_map: method_map,
256
- vtable_map: vtable_map} ;
259
+ if upto == cu_no_trans { return { crate : crate , tcx: Some ( ty_cx) } ; }
260
+
261
+ let maps = { mutbl_map: mutbl_map,
262
+ root_map: root_map,
263
+ last_use_map: last_use_map,
264
+ method_map: method_map,
265
+ vtable_map: vtable_map} ;
266
+
267
+ time ( time_passes, ~"translation", ||
268
+ trans:: base:: trans_crate ( sess, crate , ty_cx,
269
+ & outputs. obj_filename ,
270
+ exp_map2, maps) )
271
+
272
+ } ;
257
273
258
- let ( llmod, link_meta) = time ( time_passes, ~"translation", ||
259
- trans:: base:: trans_crate ( sess, crate , ty_cx,
260
- & outputs. obj_filename ,
261
- exp_map2, maps) ) ;
262
274
263
275
time ( time_passes, ~"LLVM passes", ||
264
276
link:: write:: run_passes ( sess, llmod,
@@ -269,14 +281,14 @@ fn compile_upto(sess: Session, cfg: ast::crate_cfg,
269
281
( sess. opts . static && sess. building_library ) ||
270
282
sess. opts . jit ;
271
283
272
- if stop_after_codegen { return { crate : crate , tcx: Some ( ty_cx ) } ; }
284
+ if stop_after_codegen { return { crate : crate , tcx: None } ; }
273
285
274
286
time ( time_passes, ~"linking", ||
275
287
link:: link_binary ( sess,
276
288
& outputs. obj_filename ,
277
289
& outputs. out_filename , link_meta) ) ;
278
290
279
- return { crate : crate , tcx: Some ( ty_cx ) } ;
291
+ return { crate : crate , tcx: None } ;
280
292
}
281
293
282
294
fn compile_input ( sess : Session , cfg : ast:: crate_cfg , input : input ,
0 commit comments