Skip to content

Commit f2a7fc6

Browse files
AatchJames Miller
authored and
James Miller
committed
Fix Merge Fallout
1 parent cc908b7 commit f2a7fc6

File tree

6 files changed

+119
-119
lines changed

6 files changed

+119
-119
lines changed

src/librustc/driver/driver.rs

Lines changed: 78 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -219,109 +219,109 @@ pub fn compile_rest(sess: Session,
219219
crate = time(time_passes, ~"intrinsic injection", ||
220220
front::intrinsic_inject::inject_intrinsic(sess, crate));
221221

222-
crate = time(time_passes, ~"extra injection", ||
223-
front::std_inject::maybe_inject_libstd_ref(sess, crate));
222+
crate = time(time_passes, ~"extra injection", ||
223+
front::std_inject::maybe_inject_libstd_ref(sess, crate));
224224

225-
let ast_map = time(time_passes, ~"ast indexing", ||
226-
syntax::ast_map::map_crate(sess.diagnostic(), crate));
225+
let ast_map = time(time_passes, ~"ast indexing", ||
226+
syntax::ast_map::map_crate(sess.diagnostic(), crate));
227227

228-
time(time_passes, ~"external crate/lib resolution", ||
229-
creader::read_crates(sess.diagnostic(), crate, sess.cstore,
230-
sess.filesearch,
231-
session::sess_os_to_meta_os(sess.targ_cfg.os),
232-
sess.opts.is_static,
233-
token::get_ident_interner()));
228+
time(time_passes, ~"external crate/lib resolution", ||
229+
creader::read_crates(sess.diagnostic(), crate, sess.cstore,
230+
sess.filesearch,
231+
session::sess_os_to_meta_os(sess.targ_cfg.os),
232+
sess.opts.is_static,
233+
token::get_ident_interner()));
234234

235-
let lang_items = time(time_passes, ~"language item collection", ||
236-
middle::lang_items::collect_language_items(crate, sess));
235+
let lang_items = time(time_passes, ~"language item collection", ||
236+
middle::lang_items::collect_language_items(crate, sess));
237237

238-
let middle::resolve::CrateMap {
239-
def_map: def_map,
240-
exp_map2: exp_map2,
241-
trait_map: trait_map
242-
} =
243-
time(time_passes, ~"resolution", ||
244-
middle::resolve::resolve_crate(sess, lang_items, crate));
238+
let middle::resolve::CrateMap {
239+
def_map: def_map,
240+
exp_map2: exp_map2,
241+
trait_map: trait_map
242+
} =
243+
time(time_passes, ~"resolution", ||
244+
middle::resolve::resolve_crate(sess, lang_items, crate));
245245

246-
time(time_passes, ~"looking for entry point",
247-
|| middle::entry::find_entry_point(sess, crate, ast_map));
246+
time(time_passes, ~"looking for entry point",
247+
|| middle::entry::find_entry_point(sess, crate, ast_map));
248248

249-
let freevars = time(time_passes, ~"freevar finding", ||
250-
freevars::annotate_freevars(def_map, crate));
249+
let freevars = time(time_passes, ~"freevar finding", ||
250+
freevars::annotate_freevars(def_map, crate));
251251

252-
let region_map = time(time_passes, ~"region resolution", ||
253-
middle::region::resolve_crate(sess, def_map, crate));
252+
let region_map = time(time_passes, ~"region resolution", ||
253+
middle::region::resolve_crate(sess, def_map, crate));
254254

255-
let rp_set = time(time_passes, ~"region parameterization inference", ||
256-
middle::region::determine_rp_in_crate(sess, ast_map, def_map, crate));
255+
let rp_set = time(time_passes, ~"region parameterization inference", ||
256+
middle::region::determine_rp_in_crate(sess, ast_map, def_map, crate));
257257

258-
let ty_cx = ty::mk_ctxt(sess, def_map, ast_map, freevars,
259-
region_map, rp_set, lang_items);
258+
let ty_cx = ty::mk_ctxt(sess, def_map, ast_map, freevars,
259+
region_map, rp_set, lang_items);
260260

261-
// passes are timed inside typeck
262-
let (method_map, vtable_map) = typeck::check_crate(
263-
ty_cx, trait_map, crate);
261+
// passes are timed inside typeck
262+
let (method_map, vtable_map) = typeck::check_crate(
263+
ty_cx, trait_map, crate);
264264

265-
// These next two const passes can probably be merged
266-
time(time_passes, ~"const marking", ||
267-
middle::const_eval::process_crate(crate, ty_cx));
265+
// These next two const passes can probably be merged
266+
time(time_passes, ~"const marking", ||
267+
middle::const_eval::process_crate(crate, ty_cx));
268268

269-
time(time_passes, ~"const checking", ||
270-
middle::check_const::check_crate(sess, crate, ast_map, def_map,
271-
method_map, ty_cx));
269+
time(time_passes, ~"const checking", ||
270+
middle::check_const::check_crate(sess, crate, ast_map, def_map,
271+
method_map, ty_cx));
272272

273-
if phases.to == cu_typeck { return (Some(crate), Some(ty_cx)); }
273+
if phases.to == cu_typeck { return (Some(crate), Some(ty_cx)); }
274274

275-
time(time_passes, ~"privacy checking", ||
276-
middle::privacy::check_crate(ty_cx, &method_map, crate));
275+
time(time_passes, ~"privacy checking", ||
276+
middle::privacy::check_crate(ty_cx, &method_map, crate));
277277

278-
time(time_passes, ~"effect checking", ||
279-
middle::effect::check_crate(ty_cx, method_map, crate));
278+
time(time_passes, ~"effect checking", ||
279+
middle::effect::check_crate(ty_cx, method_map, crate));
280280

281-
time(time_passes, ~"loop checking", ||
282-
middle::check_loop::check_crate(ty_cx, crate));
281+
time(time_passes, ~"loop checking", ||
282+
middle::check_loop::check_crate(ty_cx, crate));
283283

284-
let middle::moves::MoveMaps {moves_map, moved_variables_set,
285-
capture_map} =
286-
time(time_passes, ~"compute moves", ||
287-
middle::moves::compute_moves(ty_cx, method_map, crate));
284+
let middle::moves::MoveMaps {moves_map, moved_variables_set,
285+
capture_map} =
286+
time(time_passes, ~"compute moves", ||
287+
middle::moves::compute_moves(ty_cx, method_map, crate));
288288

289-
time(time_passes, ~"match checking", ||
290-
middle::check_match::check_crate(ty_cx, method_map,
291-
moves_map, crate));
289+
time(time_passes, ~"match checking", ||
290+
middle::check_match::check_crate(ty_cx, method_map,
291+
moves_map, crate));
292292

293-
time(time_passes, ~"liveness checking", ||
294-
middle::liveness::check_crate(ty_cx, method_map,
295-
capture_map, crate));
296-
297-
let (root_map, write_guard_map) =
298-
time(time_passes, ~"borrow checking", ||
299-
middle::borrowck::check_crate(ty_cx, method_map,
300-
moves_map, moved_variables_set,
293+
time(time_passes, ~"liveness checking", ||
294+
middle::liveness::check_crate(ty_cx, method_map,
301295
capture_map, crate));
302296

303-
time(time_passes, ~"kind checking", ||
304-
kind::check_crate(ty_cx, method_map, crate));
297+
let (root_map, write_guard_map) =
298+
time(time_passes, ~"borrow checking", ||
299+
middle::borrowck::check_crate(ty_cx, method_map,
300+
moves_map, moved_variables_set,
301+
capture_map, crate));
305302

306-
time(time_passes, ~"lint checking", ||
307-
lint::check_crate(ty_cx, crate));
303+
time(time_passes, ~"kind checking", ||
304+
kind::check_crate(ty_cx, method_map, crate));
308305

309-
if phases.to == cu_no_trans { return (Some(crate), Some(ty_cx)); }
306+
time(time_passes, ~"lint checking", ||
307+
lint::check_crate(ty_cx, crate));
310308

311-
let maps = astencode::Maps {
312-
root_map: root_map,
313-
method_map: method_map,
314-
vtable_map: vtable_map,
315-
write_guard_map: write_guard_map,
316-
moves_map: moves_map,
317-
capture_map: capture_map
318-
};
309+
if phases.to == cu_no_trans { return (Some(crate), Some(ty_cx)); }
319310

320-
let outputs = outputs.get_ref();
321-
time(time_passes, ~"translation", ||
322-
trans::base::trans_crate(sess, crate, ty_cx,
323-
&outputs.obj_filename,
324-
exp_map2, maps))
311+
let maps = astencode::Maps {
312+
root_map: root_map,
313+
method_map: method_map,
314+
vtable_map: vtable_map,
315+
write_guard_map: write_guard_map,
316+
moves_map: moves_map,
317+
capture_map: capture_map
318+
};
319+
320+
let outputs = outputs.get_ref();
321+
time(time_passes, ~"translation", ||
322+
trans::base::trans_crate(sess, crate, ty_cx,
323+
&outputs.obj_filename,
324+
exp_map2, maps))
325325
};
326326

327327
let outputs = outputs.get_ref();

src/librustc/middle/trans/base.rs

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3114,20 +3114,10 @@ pub fn trans_crate(sess: session::Session,
31143114
io::println(fmt!("%-7u %s", v, k));
31153115
}
31163116
}
3117-
return (llmod, link_meta);
3118-
}
3119-
3120-
fn task_local_llcx_key(_v: @ContextRef) {}
3117+
let llcx = ccx.llcx;
3118+
let link_meta = ccx.link_meta;
3119+
let llmod = ccx.llmod;
31213120

3122-
pub fn task_llcx() -> ContextRef {
3123-
let opt = unsafe { local_data::local_data_get(task_local_llcx_key) };
3124-
*opt.expect("task-local LLVMContextRef wasn't ever set!")
3121+
return (llcx, llmod, link_meta);
31253122
}
31263123

3127-
unsafe fn set_task_llcx(c: ContextRef) {
3128-
local_data::local_data_set(task_local_llcx_key, @c);
3129-
}
3130-
3131-
unsafe fn unset_task_llcx() {
3132-
local_data::local_data_pop(task_local_llcx_key);
3133-
}

src/librustc/middle/trans/cabi_mips.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ use lib::llvm::{llvm, TypeRef, Integer, Pointer, Float, Double};
1818
use lib::llvm::{Struct, Array, Attribute};
1919
use lib::llvm::{StructRetAttribute};
2020
use lib::llvm::True;
21-
use middle::trans::base::task_llcx;
21+
use middle::trans::context::task_llcx;
2222
use middle::trans::common::*;
2323
use middle::trans::cabi::*;
2424

src/librustc/middle/trans/context.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,8 @@ pub struct CrateContext {
8989
// Cache of external const values
9090
extern_const_values: HashMap<ast::def_id, ValueRef>,
9191

92+
impl_method_cache: HashMap<(ast::def_id, ast::ident), ast::def_id>,
93+
9294
module_data: HashMap<~str, ValueRef>,
9395
lltypes: HashMap<ty::t, TypeRef>,
9496
llsizingtypes: HashMap<ty::t, TypeRef>,
@@ -178,6 +180,7 @@ impl CrateContext {
178180
const_globals: HashMap::new(),
179181
const_values: HashMap::new(),
180182
extern_const_values: HashMap::new(),
183+
impl_method_cache: HashMap::new(),
181184
module_data: HashMap::new(),
182185
lltypes: HashMap::new(),
183186
llsizingtypes: HashMap::new(),
@@ -244,4 +247,3 @@ unsafe fn set_task_llcx(c: ContextRef) {
244247
unsafe fn unset_task_llcx() {
245248
local_data::local_data_pop(task_local_llcx_key);
246249
}
247-

src/librustc/middle/trans/debuginfo.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ use core::prelude::*;
1313
use driver::session;
1414
use lib::llvm::ValueRef;
1515
use lib::llvm::llvm;
16-
use middle::trans::base::task_llcx;
16+
use middle::trans::context::task_llcx;
1717
use middle::trans::common::*;
1818
use middle::trans::machine;
1919
use middle::trans::type_of;

src/librustc/middle/trans/meth.rs

Lines changed: 32 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -381,36 +381,44 @@ pub fn method_from_methods(ms: &[@ast::method], name: ast::ident)
381381
pub fn method_with_name_or_default(ccx: @mut CrateContext,
382382
impl_id: ast::def_id,
383383
name: ast::ident) -> ast::def_id {
384-
*do ccx.impl_method_cache.find_or_insert_with((impl_id, name)) |_| {
385-
if impl_id.crate == ast::local_crate {
386-
match ccx.tcx.items.get_copy(&impl_id.node) {
387-
ast_map::node_item(@ast::item {
388-
node: ast::item_impl(_, _, _, ref ms), _
389-
}, _) => {
390-
let did = method_from_methods(*ms, name);
391-
if did.is_some() {
392-
did.get()
393-
} else {
394-
// Look for a default method
395-
let pmm = ccx.tcx.provided_methods;
396-
match pmm.find(&impl_id) {
397-
Some(pmis) => {
398-
for pmis.each |pmi| {
399-
if pmi.method_info.ident == name {
400-
debug!("pmi.method_info.did = %?", pmi.method_info.did);
401-
return pmi.method_info.did;
384+
let imp = ccx.impl_method_cache.find_copy(&(impl_id, name));
385+
match imp {
386+
Some(m) => m,
387+
None => {
388+
let imp = if impl_id.crate == ast::local_crate {
389+
match ccx.tcx.items.get_copy(&impl_id.node) {
390+
ast_map::node_item(@ast::item {
391+
node: ast::item_impl(_, _, _, ref ms), _
392+
}, _) => {
393+
let did = method_from_methods(*ms, name);
394+
if did.is_some() {
395+
did.get()
396+
} else {
397+
// Look for a default method
398+
let pmm = ccx.tcx.provided_methods;
399+
match pmm.find(&impl_id) {
400+
Some(pmis) => {
401+
for pmis.each |pmi| {
402+
if pmi.method_info.ident == name {
403+
debug!("pmi.method_info.did = %?", pmi.method_info.did);
404+
return pmi.method_info.did;
405+
}
402406
}
407+
fail!()
403408
}
404-
fail!()
409+
None => fail!()
405410
}
406-
None => fail!()
407411
}
408412
}
413+
_ => fail!("method_with_name")
409414
}
410-
_ => fail!("method_with_name")
411-
}
412-
} else {
413-
csearch::get_impl_method(ccx.sess.cstore, impl_id, name)
415+
} else {
416+
csearch::get_impl_method(ccx.sess.cstore, impl_id, name)
417+
};
418+
419+
ccx.impl_method_cache.insert((impl_id, name), imp);
420+
421+
imp
414422
}
415423
}
416424
}

0 commit comments

Comments
 (0)