about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMark Rousskov <mark.simulacrum@gmail.com>2021-10-03 12:43:43 -0400
committerMark Rousskov <mark.simulacrum@gmail.com>2021-10-03 12:43:43 -0400
commit1c2ad79f9d789b0d449a1bc4dfe7d7ddc2ed4109 (patch)
tree9ee71c9d3fb86b5f857aabec39cf77560245d114
parent2801a770ce3a21a53769180d9815240ac555cbef (diff)
downloadrust-1c2ad79f9d789b0d449a1bc4dfe7d7ddc2ed4109.tar.gz
rust-1c2ad79f9d789b0d449a1bc4dfe7d7ddc2ed4109.zip
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.
-rw-r--r--compiler/rustc_infer/src/infer/type_variable.rs1
-rw-r--r--compiler/rustc_type_ir/src/lib.rs1
2 files changed, 2 insertions, 0 deletions
diff --git a/compiler/rustc_infer/src/infer/type_variable.rs b/compiler/rustc_infer/src/infer/type_variable.rs
index 0e832685310..82970f214fa 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<ty::TyVid> 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 d9ce169efc1..91dbbec782f 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<IntVarValue>;
+    #[inline] // make this function eligible for inlining - it is quite hot.
     fn index(&self) -> u32 {
         self.index
     }