Skip to content

Commit dad8ddb

Browse files
committed
Inline functions from cg_ssa::callee and remove the mod
Fixes #65271
1 parent f1ed3a8 commit dad8ddb

File tree

6 files changed

+40
-66
lines changed

6 files changed

+40
-66
lines changed

src/librustc_codegen_llvm/context.rs

+16-3
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ use rustc::ty::layout::{
2020
use rustc::ty::{self, Ty, TyCtxt, Instance};
2121
use rustc::util::nodemap::FxHashMap;
2222
use rustc_target::spec::{HasTargetSpec, Target};
23-
use rustc_codegen_ssa::callee::resolve_and_get_fn;
2423
use rustc_codegen_ssa::base::wants_msvc_seh;
2524
use crate::callee::get_fn;
2625

@@ -362,7 +361,14 @@ impl MiscMethods<'tcx> for CodegenCx<'ll, 'tcx> {
362361
let tcx = self.tcx;
363362
let llfn = match tcx.lang_items().eh_personality() {
364363
Some(def_id) if !wants_msvc_seh(self.sess()) => {
365-
resolve_and_get_fn(self, def_id, tcx.intern_substs(&[]))
364+
self.get_fn(
365+
ty::Instance::resolve(
366+
tcx,
367+
ty::ParamEnv::reveal_all(),
368+
def_id,
369+
tcx.intern_substs(&[]),
370+
).unwrap()
371+
)
366372
}
367373
_ => {
368374
let name = if wants_msvc_seh(self.sess()) {
@@ -390,7 +396,14 @@ impl MiscMethods<'tcx> for CodegenCx<'ll, 'tcx> {
390396
let tcx = self.tcx;
391397
assert!(self.sess().target.target.options.custom_unwind_resume);
392398
if let Some(def_id) = tcx.lang_items().eh_unwind_resume() {
393-
let llfn = resolve_and_get_fn(self, def_id, tcx.intern_substs(&[]));
399+
let llfn = self.get_fn(
400+
ty::Instance::resolve(
401+
tcx,
402+
ty::ParamEnv::reveal_all(),
403+
def_id,
404+
tcx.intern_substs(&[]),
405+
).unwrap()
406+
);
394407
unwresume.set(Some(llfn));
395408
return llfn;
396409
}

src/librustc_codegen_ssa/base.rs

+7-5
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ use crate::mir::place::PlaceRef;
3636
use crate::back::write::{OngoingCodegen, start_async_codegen, submit_pre_lto_module_to_llvm,
3737
submit_post_lto_module_to_llvm};
3838
use crate::{MemFlags, CrateInfo};
39-
use crate::callee;
4039
use crate::common::{RealPredicate, TypeKind, IntPredicate};
4140
use crate::meth;
4241
use crate::mir;
@@ -455,10 +454,13 @@ pub fn maybe_create_entry_wrapper<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>>(cx: &'
455454

456455
let (start_fn, args) = if use_start_lang_item {
457456
let start_def_id = cx.tcx().require_lang_item(StartFnLangItem, None);
458-
let start_fn = callee::resolve_and_get_fn(
459-
cx,
460-
start_def_id,
461-
cx.tcx().intern_substs(&[main_ret_ty.into()]),
457+
let start_fn = cx.get_fn(
458+
ty::Instance::resolve(
459+
cx.tcx(),
460+
ty::ParamEnv::reveal_all(),
461+
start_def_id,
462+
cx.tcx().intern_substs(&[main_ret_ty.into()]),
463+
).unwrap()
462464
);
463465
(start_fn, vec![bx.pointercast(rust_main, cx.type_ptr_to(cx.type_i8p())),
464466
arg_argc, arg_argv])

src/librustc_codegen_ssa/callee.rs

-53
This file was deleted.

src/librustc_codegen_ssa/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ pub mod traits;
4141
pub mod mir;
4242
pub mod debuginfo;
4343
pub mod base;
44-
pub mod callee;
4544
pub mod glue;
4645
pub mod meth;
4746
pub mod mono_item;

src/librustc_codegen_ssa/meth.rs

+8-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
use rustc_target::abi::call::FnType;
22

3-
use crate::callee;
43
use crate::traits::*;
54

65
use rustc::ty::{self, Ty, Instance};
@@ -92,7 +91,14 @@ pub fn get_vtable<'tcx, Cx: CodegenMethods<'tcx>>(
9291

9392
let methods = methods.cloned().map(|opt_mth| {
9493
opt_mth.map_or(nullptr, |(def_id, substs)| {
95-
callee::resolve_and_get_fn_for_vtable(cx, def_id, substs)
94+
cx.get_fn(
95+
ty::Instance::resolve_for_vtable(
96+
cx.tcx(),
97+
ty::ParamEnv::reveal_all(),
98+
def_id,
99+
substs,
100+
).unwrap()
101+
)
96102
})
97103
});
98104

src/librustc_codegen_ssa/mir/rvalue.rs

+9-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ use syntax::source_map::{DUMMY_SP, Span};
1010

1111
use crate::base;
1212
use crate::MemFlags;
13-
use crate::callee;
1413
use crate::common::{self, RealPredicate, IntPredicate};
1514

1615
use crate::traits::*;
@@ -190,7 +189,15 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
190189
bug!("reifying a fn ptr that requires const arguments");
191190
}
192191
OperandValue::Immediate(
193-
callee::resolve_and_get_fn_for_ptr(bx.cx(), def_id, substs))
192+
bx.get_fn(
193+
ty::Instance::resolve_for_fn_ptr(
194+
bx.tcx(),
195+
ty::ParamEnv::reveal_all(),
196+
def_id,
197+
substs
198+
).unwrap()
199+
)
200+
)
194201
}
195202
_ => {
196203
bug!("{} cannot be reified to a fn ptr", operand.layout.ty)

0 commit comments

Comments
 (0)