Skip to content

Commit fed71e3

Browse files
committed
Pass CrateInfo instead of TyCtxt to load_imported_symbols_for_jit
1 parent a0cdbd1 commit fed71e3

File tree

1 file changed

+12
-9
lines changed

1 file changed

+12
-9
lines changed

src/driver/jit.rs

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ use std::sync::{mpsc, Mutex};
1010
use cranelift_codegen::binemit::{NullStackMapSink, NullTrapSink};
1111
use rustc_codegen_ssa::CrateInfo;
1212
use rustc_middle::mir::mono::MonoItem;
13+
use rustc_session::Session;
1314

1415
use cranelift_jit::{JITBuilder, JITModule};
1516

@@ -65,7 +66,8 @@ fn create_jit_module<'tcx>(
6566
backend_config: &BackendConfig,
6667
hotswap: bool,
6768
) -> (JITModule, CodegenCx<'tcx>) {
68-
let imported_symbols = load_imported_symbols_for_jit(tcx);
69+
let crate_info = CrateInfo::new(tcx);
70+
let imported_symbols = load_imported_symbols_for_jit(tcx.sess, crate_info);
6971

7072
let isa = crate::build_isa(tcx.sess, backend_config);
7173
let mut jit_builder = JITBuilder::with_isa(isa, cranelift_module::default_libcall_names());
@@ -255,14 +257,16 @@ fn jit_fn(instance_ptr: *const Instance<'static>, trampoline_ptr: *const u8) ->
255257
})
256258
}
257259

258-
fn load_imported_symbols_for_jit(tcx: TyCtxt<'_>) -> Vec<(String, *const u8)> {
260+
fn load_imported_symbols_for_jit(
261+
sess: &Session,
262+
crate_info: CrateInfo,
263+
) -> Vec<(String, *const u8)> {
259264
use rustc_middle::middle::dependency_format::Linkage;
260265

261266
let mut dylib_paths = Vec::new();
262267

263-
let crate_info = CrateInfo::new(tcx);
264-
let formats = tcx.dependency_formats(());
265-
let data = &formats
268+
let data = &crate_info
269+
.dependency_formats
266270
.iter()
267271
.find(|(crate_type, _data)| *crate_type == rustc_session::config::CrateType::Executable)
268272
.unwrap()
@@ -272,9 +276,8 @@ fn load_imported_symbols_for_jit(tcx: TyCtxt<'_>) -> Vec<(String, *const u8)> {
272276
match data[cnum.as_usize() - 1] {
273277
Linkage::NotLinked | Linkage::IncludedFromDylib => {}
274278
Linkage::Static => {
275-
let name = tcx.crate_name(cnum);
276-
let mut err =
277-
tcx.sess.struct_err(&format!("Can't load static lib {}", name.as_str()));
279+
let name = &crate_info.crate_name[&cnum];
280+
let mut err = sess.struct_err(&format!("Can't load static lib {}", name.as_str()));
278281
err.note("rustc_codegen_cranelift can only load dylibs in JIT mode.");
279282
err.emit();
280283
}
@@ -314,7 +317,7 @@ fn load_imported_symbols_for_jit(tcx: TyCtxt<'_>) -> Vec<(String, *const u8)> {
314317
std::mem::forget(lib)
315318
}
316319

317-
tcx.sess.abort_if_errors();
320+
sess.abort_if_errors();
318321

319322
imported_symbols
320323
}

0 commit comments

Comments
 (0)