Skip to content

Commit 6c6c31d

Browse files
committed
Avoid computing function type for intrinsic instances
1 parent 926c8c8 commit 6c6c31d

File tree

1 file changed

+3
-8
lines changed

1 file changed

+3
-8
lines changed

src/intrinsic/mod.rs

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ use rustc_codegen_ssa::traits::{
2323
use rustc_middle::bug;
2424
#[cfg(feature = "master")]
2525
use rustc_middle::ty::layout::FnAbiOf;
26-
use rustc_middle::ty::layout::{HasTypingEnv, LayoutOf};
26+
use rustc_middle::ty::layout::LayoutOf;
2727
use rustc_middle::ty::{self, Instance, Ty};
2828
use rustc_span::{Span, Symbol, sym};
2929
use rustc_target::callconv::{ArgAbi, PassMode};
@@ -205,15 +205,10 @@ impl<'a, 'gcc, 'tcx> IntrinsicCallBuilderMethods<'tcx> for Builder<'a, 'gcc, 'tc
205205
span: Span,
206206
) -> Result<(), Instance<'tcx>> {
207207
let tcx = self.tcx;
208-
let callee_ty = instance.ty(tcx, self.typing_env());
209208

210-
let (def_id, fn_args) = match *callee_ty.kind() {
211-
ty::FnDef(def_id, fn_args) => (def_id, fn_args),
212-
_ => bug!("expected fn item type, found {}", callee_ty),
213-
};
214-
215-
let name = tcx.item_name(def_id);
209+
let name = tcx.item_name(instance.def_id());
216210
let name_str = name.as_str();
211+
let fn_args = instance.args;
217212

218213
let simple = get_simple_intrinsic(self, name);
219214
let simple_func = get_simple_function(self, name);

0 commit comments

Comments
 (0)