From 84bf599bace38787f2237d2aadc5adf55fe662db Mon Sep 17 00:00:00 2001 From: Camille GILLOT Date: Thu, 11 Mar 2021 11:49:23 +0100 Subject: [PATCH] Add inlining. --- compiler/rustc_data_structures/src/stable_hasher.rs | 1 + compiler/rustc_macros/src/hash_stable.rs | 2 ++ library/core/src/hash/mod.rs | 13 +++++++++++++ 3 files changed, 16 insertions(+) diff --git a/compiler/rustc_data_structures/src/stable_hasher.rs b/compiler/rustc_data_structures/src/stable_hasher.rs index 3850c9b74fd..ff28784a1dc 100644 --- a/compiler/rustc_data_structures/src/stable_hasher.rs +++ b/compiler/rustc_data_structures/src/stable_hasher.rs @@ -35,6 +35,7 @@ impl StableHasher { StableHasher { state: SipHasher128::new_with_keys(0, 0) } } + #[inline] pub fn finish(self) -> W { W::finish(self) } diff --git a/compiler/rustc_macros/src/hash_stable.rs b/compiler/rustc_macros/src/hash_stable.rs index c955c137782..30569f20793 100644 --- a/compiler/rustc_macros/src/hash_stable.rs +++ b/compiler/rustc_macros/src/hash_stable.rs @@ -74,6 +74,7 @@ pub fn hash_stable_generic_derive(mut s: synstructure::Structure<'_>) -> proc_ma s.bound_impl( quote!(::rustc_data_structures::stable_hasher::HashStable<__CTX>), quote! { + #[inline] fn hash_stable( &self, __hcx: &mut __CTX, @@ -119,6 +120,7 @@ pub fn hash_stable_derive(mut s: synstructure::Structure<'_>) -> proc_macro2::To > ), quote! { + #[inline] fn hash_stable( &self, __hcx: &mut ::rustc_middle::ich::StableHashingContext<'__ctx>, diff --git a/library/core/src/hash/mod.rs b/library/core/src/hash/mod.rs index cd47f97496a..dcdf0192660 100644 --- a/library/core/src/hash/mod.rs +++ b/library/core/src/hash/mod.rs @@ -548,10 +548,12 @@ mod impls { ($(($ty:ident, $meth:ident),)*) => {$( #[stable(feature = "rust1", since = "1.0.0")] impl Hash for $ty { + #[inline] fn hash(&self, state: &mut H) { state.$meth(*self) } + #[inline] fn hash_slice(data: &[$ty], state: &mut H) { let newlen = data.len() * mem::size_of::<$ty>(); let ptr = data.as_ptr() as *const u8; @@ -582,6 +584,7 @@ mod impls { #[stable(feature = "rust1", since = "1.0.0")] impl Hash for bool { + #[inline] fn hash(&self, state: &mut H) { state.write_u8(*self as u8) } @@ -589,6 +592,7 @@ mod impls { #[stable(feature = "rust1", since = "1.0.0")] impl Hash for char { + #[inline] fn hash(&self, state: &mut H) { state.write_u32(*self as u32) } @@ -596,6 +600,7 @@ mod impls { #[stable(feature = "rust1", since = "1.0.0")] impl Hash for str { + #[inline] fn hash(&self, state: &mut H) { state.write(self.as_bytes()); state.write_u8(0xff) @@ -604,6 +609,7 @@ mod impls { #[stable(feature = "never_hash", since = "1.29.0")] impl Hash for ! { + #[inline] fn hash(&self, _: &mut H) { *self } @@ -613,6 +619,7 @@ mod impls { () => ( #[stable(feature = "rust1", since = "1.0.0")] impl Hash for () { + #[inline] fn hash(&self, _state: &mut H) {} } ); @@ -621,6 +628,7 @@ mod impls { #[stable(feature = "rust1", since = "1.0.0")] impl<$($name: Hash),+> Hash for ($($name,)+) where last_type!($($name,)+): ?Sized { #[allow(non_snake_case)] + #[inline] fn hash(&self, state: &mut S) { let ($(ref $name,)+) = *self; $($name.hash(state);)+ @@ -650,6 +658,7 @@ mod impls { #[stable(feature = "rust1", since = "1.0.0")] impl Hash for [T] { + #[inline] fn hash(&self, state: &mut H) { self.len().hash(state); Hash::hash_slice(self, state) @@ -658,6 +667,7 @@ mod impls { #[stable(feature = "rust1", since = "1.0.0")] impl Hash for &T { + #[inline] fn hash(&self, state: &mut H) { (**self).hash(state); } @@ -665,6 +675,7 @@ mod impls { #[stable(feature = "rust1", since = "1.0.0")] impl Hash for &mut T { + #[inline] fn hash(&self, state: &mut H) { (**self).hash(state); } @@ -672,6 +683,7 @@ mod impls { #[stable(feature = "rust1", since = "1.0.0")] impl Hash for *const T { + #[inline] fn hash(&self, state: &mut H) { #[cfg(not(bootstrap))] { @@ -701,6 +713,7 @@ mod impls { #[stable(feature = "rust1", since = "1.0.0")] impl Hash for *mut T { + #[inline] fn hash(&self, state: &mut H) { #[cfg(not(bootstrap))] {