rust/src/librustc/middle/trans
bors 098106870e auto merge of #8077 : graydon/rust/reorganize-driver, r=pcwalton
The purpose here is to get rid of compile_upto, which pretty much always requires the user to read the source to figure out what it does. It's replaced by a sequence of obviously-named functions:

  - phase_1_parse_input(sess, cfg, input);
  - phase_2_configure_and_expand(sess, cfg, crate);
  - phase_3_run_analysis_passes(sess, expanded_crate);
  - phase_4_translate_to_llvm(sess, expanded_crate, &analysis, outputs);
  - phase_5_run_llvm_passes(sess, &trans, outputs);
  - phase_6_link_output(sess, &trans, outputs); 

Each of which takes what it takes and returns what it returns, with as little variation as possible in behaviour: no "pairs of options" and "pairs of control flags". You can tell if you missed a phase because you will be missing a `phase_N` call to some `N` between 1 and 6.

It does mean that people invoking librustc from outside need to write more function calls. The benefit is that they can _figure out what they're doing_ much more easily, and stop at any point, rather than further overloading the tangled logic of `compile_upto`.
2013-07-27 14:49:28 -07:00
..
_match.rs Allow uint discriminants and store them as such 2013-07-24 23:54:40 -04:00
adt.rs Allow uint discriminants and store them as such 2013-07-24 23:54:40 -04:00
asm.rs auto merge of #7996 : erickt/rust/cleanup-strs, r=erickt 2013-07-24 13:25:36 -07:00
base.rs auto merge of #8077 : graydon/rust/reorganize-driver, r=pcwalton 2013-07-27 14:49:28 -07:00
build.rs Adapted trans::common::{block, fn_ctxt, scope_info} to new naming convention. 2013-07-23 15:38:55 +02:00
builder.rs std: move StrUtil::as_c_str into StrSlice 2013-07-23 16:56:22 -07:00
cabi_arm.rs
cabi_mips.rs
cabi_x86_64.rs
cabi_x86.rs
cabi.rs Adapted trans::common::{block, fn_ctxt, scope_info} to new naming convention. 2013-07-23 15:38:55 +02:00
callee.rs auto merge of #8027 : nikomatsakis/rust/issue-4846-multiple-lifetime-parameters-1, r=pcwalton 2013-07-25 07:37:45 -07:00
closure.rs Adapted trans::common::{block, fn_ctxt, scope_info} to new naming convention. 2013-07-23 15:38:55 +02:00
common.rs auto merge of #8041 : dotdash/rust/const_if_else, r=huonw 2013-07-26 09:46:49 -07:00
consts.rs librustc: Stop trying to make invalid slice with vec in static. 2013-07-27 04:47:12 -04:00
context.rs std: move StrUtil::as_c_str into StrSlice 2013-07-23 16:56:22 -07:00
controlflow.rs Generate branchless code when "if" can be evaluated at compile time 2013-07-25 17:03:46 +02:00
datum.rs Adapted trans::common::{block, fn_ctxt, scope_info} to new naming convention. 2013-07-23 15:38:55 +02:00
debuginfo.rs debuginfo: Fixed a few things for PR. 2013-07-25 23:05:56 +02:00
expr.rs Allow uint discriminants and store them as such 2013-07-24 23:54:40 -04:00
foreign.rs librustc: Unify name mangling for functions and statics. 2013-07-27 01:50:20 -04:00
glue.rs auto merge of #7996 : erickt/rust/cleanup-strs, r=erickt 2013-07-24 13:25:36 -07:00
inline.rs
machine.rs
macros.rs
meth.rs Major rework of how calls to self and super methods work. 2013-07-23 17:06:33 -07:00
mod.rs Provide lower level access to the LLVM IR builder 2013-07-21 16:43:06 +02:00
monomorphize.rs Properly track and export information about vtables for impls in metadata. 2013-07-23 17:06:33 -07:00
reflect.rs Allow uint discriminants and store them as such 2013-07-24 23:54:40 -04:00
tvec.rs Adapted trans::common::{block, fn_ctxt, scope_info} to new naming convention. 2013-07-23 15:38:55 +02:00
type_.rs
type_of.rs Generalize the ty::substs struct so that it can represent 2013-07-24 16:52:57 -04:00
type_use.rs Major rework of how calls to self and super methods work. 2013-07-23 17:06:33 -07:00
uniq.rs Adapted trans::common::{block, fn_ctxt, scope_info} to new naming convention. 2013-07-23 15:38:55 +02:00
write_guard.rs Adapted trans::common::{block, fn_ctxt, scope_info} to new naming convention. 2013-07-23 15:38:55 +02:00