From 1c2ad79f9d789b0d449a1bc4dfe7d7ddc2ed4109 Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Sun, 3 Oct 2021 12:43:43 -0400 Subject: [PATCH] Add two inline annotations for hot functions These two functions are essentially no-ops (and compile to just a load and return), but show up in process_obligations profiles with a high call count -- so worthwhile to try and inline them away. --- compiler/rustc_infer/src/infer/type_variable.rs | 1 + compiler/rustc_type_ir/src/lib.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/compiler/rustc_infer/src/infer/type_variable.rs b/compiler/rustc_infer/src/infer/type_variable.rs index 0e832685310d5..82970f214fa66 100644 --- a/compiler/rustc_infer/src/infer/type_variable.rs +++ b/compiler/rustc_infer/src/infer/type_variable.rs @@ -400,6 +400,7 @@ pub(crate) struct TyVidEqKey<'tcx> { } impl<'tcx> From for TyVidEqKey<'tcx> { + #[inline] // make this function eligible for inlining - it is quite hot. fn from(vid: ty::TyVid) -> Self { TyVidEqKey { vid, phantom: PhantomData } } diff --git a/compiler/rustc_type_ir/src/lib.rs b/compiler/rustc_type_ir/src/lib.rs index d9ce169efc15c..91dbbec782f89 100644 --- a/compiler/rustc_type_ir/src/lib.rs +++ b/compiler/rustc_type_ir/src/lib.rs @@ -437,6 +437,7 @@ impl EqUnifyValue for IntVarValue {} impl UnifyKey for IntVid { type Value = Option; + #[inline] // make this function eligible for inlining - it is quite hot. fn index(&self) -> u32 { self.index }