diff options
| author | Brian Anderson <banderson@mozilla.com> | 2012-06-07 19:42:22 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2012-06-07 19:42:27 -0700 |
| commit | 7ef825bb607c4e934c92bd0b73ecbc4c24f3286b (patch) | |
| tree | c5800f031f1959f2d91c61b890547a3b37f3a0af /src/rustc/driver | |
| parent | c058f1d9927874fd5bfe40d5e6698880a07c36bb (diff) | |
| download | rust-7ef825bb607c4e934c92bd0b73ecbc4c24f3286b.tar.gz rust-7ef825bb607c4e934c92bd0b73ecbc4c24f3286b.zip | |
Revert "remove alias analysis and replace with borrowck"
18s perf regression compiling rustc with opts This reverts commit 7f6ee0ce0df8af4c21b065cb49b95079ae643f77.
Diffstat (limited to 'src/rustc/driver')
| -rw-r--r-- | src/rustc/driver/driver.rs | 19 | ||||
| -rw-r--r-- | src/rustc/driver/session.rs | 6 |
2 files changed, 21 insertions, 4 deletions
diff --git a/src/rustc/driver/driver.rs b/src/rustc/driver/driver.rs index 769f3c40e25..672a950f42b 100644 --- a/src/rustc/driver/driver.rs +++ b/src/rustc/driver/driver.rs @@ -204,6 +204,9 @@ fn compile_upto(sess: session, cfg: ast::crate_cfg, let (root_map, mutbl_map) = time( time_passes, "borrow checking", bind middle::borrowck::check_crate(ty_cx, method_map, crate)); + let (copy_map, _ref_map) = + time(time_passes, "alias checking", + bind middle::alias::check_crate(ty_cx, crate)); time(time_passes, "kind checking", bind kind::check_crate(ty_cx, method_map, last_use_map, crate)); time(time_passes, "lint checking", @@ -213,7 +216,7 @@ fn compile_upto(sess: session, cfg: ast::crate_cfg, let outputs = option::get(outputs); let maps = {mutbl_map: mutbl_map, root_map: root_map, - last_use_map: last_use_map, + copy_map: copy_map, last_use_map: last_use_map, impl_map: impl_map, method_map: method_map, vtable_map: vtable_map}; @@ -445,6 +448,14 @@ fn build_session_options(match: getopts::match, let sysroot_opt = getopts::opt_maybe_str(match, "sysroot"); let target_opt = getopts::opt_maybe_str(match, "target"); let save_temps = getopts::opt_present(match, "save-temps"); + let borrowck = alt getopts::opt_maybe_str(match, "borrowck") { + none { 0u } + some("warn") { 1u } + some("err") { 2u } + some(_) { + early_error(demitter, "borrowck may be warn or err") + } + }; alt output_type { // unless we're emitting huamn-readable assembly, omit comments. link::output_type_llvm_assembly | link::output_type_assembly {} @@ -493,7 +504,8 @@ fn build_session_options(match: getopts::match, test: test, parse_only: parse_only, no_trans: no_trans, - debugging_opts: debugging_opts}; + debugging_opts: debugging_opts, + borrowck: borrowck}; ret sopts; } @@ -570,7 +582,8 @@ fn opts() -> [getopts::opt] { optmulti("Z"), optmulti("cfg"), optflag("test"), - optflag("lib"), optflag("bin"), optflag("static"), optflag("gc")]; + optflag("lib"), optflag("bin"), optflag("static"), optflag("gc"), + optopt("borrowck")]; } type output_filenames = @{out_filename: str, obj_filename:str}; diff --git a/src/rustc/driver/session.rs b/src/rustc/driver/session.rs index 07f42a0d269..97e2d0ec4db 100644 --- a/src/rustc/driver/session.rs +++ b/src/rustc/driver/session.rs @@ -66,6 +66,9 @@ type options = no_trans: bool, debugging_opts: uint, + + // temporary hack: 0=off,1=warn,2=err --> if 2, alias is disabled + borrowck: uint, }; type crate_metadata = {name: str, data: [u8]}; @@ -178,7 +181,8 @@ fn basic_options() -> @options { test: false, parse_only: false, no_trans: false, - debugging_opts: 0u + debugging_opts: 0u, + borrowck: 0u, } } |
