diff options
| author | Tomasz Miąsko <tomasz.miasko@gmail.com> | 2022-07-07 00:00:00 +0000 |
|---|---|---|
| committer | Tomasz Miąsko <tomasz.miasko@gmail.com> | 2022-07-07 22:20:08 +0200 |
| commit | 87374de3ad54abae93888f087813d94c882eece1 (patch) | |
| tree | b7ecdf9ecfaa2e23aef26aedeb6835923eecf711 /compiler | |
| parent | 3e51277fe638dc0c8ceb6d1d3acc5aa247277c29 (diff) | |
| download | rust-87374de3ad54abae93888f087813d94c882eece1.tar.gz rust-87374de3ad54abae93888f087813d94c882eece1.zip | |
Miscellaneous inlining improvements
Add `#[inline]` to a few trivial non-generic methods from a perf report that otherwise wouldn't be candidates for inlining.
Diffstat (limited to 'compiler')
| -rw-r--r-- | compiler/rustc_middle/src/ty/adt.rs | 5 | ||||
| -rw-r--r-- | compiler/rustc_middle/src/ty/structural_impls.rs | 1 | ||||
| -rw-r--r-- | compiler/rustc_middle/src/ty/sty.rs | 1 | ||||
| -rw-r--r-- | compiler/rustc_middle/src/ty/util.rs | 1 | ||||
| -rw-r--r-- | compiler/rustc_query_system/src/dep_graph/graph.rs | 1 | ||||
| -rw-r--r-- | compiler/rustc_query_system/src/query/job.rs | 2 | ||||
| -rw-r--r-- | compiler/rustc_query_system/src/query/mod.rs | 1 | ||||
| -rw-r--r-- | compiler/rustc_span/src/lib.rs | 1 |
8 files changed, 13 insertions, 0 deletions
diff --git a/compiler/rustc_middle/src/ty/adt.rs b/compiler/rustc_middle/src/ty/adt.rs index bf7cb610a90..4cac7670735 100644 --- a/compiler/rustc_middle/src/ty/adt.rs +++ b/compiler/rustc_middle/src/ty/adt.rs @@ -165,22 +165,27 @@ impl<'a> HashStable<StableHashingContext<'a>> for AdtDefData { pub struct AdtDef<'tcx>(pub Interned<'tcx, AdtDefData>); impl<'tcx> AdtDef<'tcx> { + #[inline] pub fn did(self) -> DefId { self.0.0.did } + #[inline] pub fn variants(self) -> &'tcx IndexVec<VariantIdx, VariantDef> { &self.0.0.variants } + #[inline] pub fn variant(self, idx: VariantIdx) -> &'tcx VariantDef { &self.0.0.variants[idx] } + #[inline] pub fn flags(self) -> AdtFlags { self.0.0.flags } + #[inline] pub fn repr(self) -> ReprOptions { self.0.0.repr } diff --git a/compiler/rustc_middle/src/ty/structural_impls.rs b/compiler/rustc_middle/src/ty/structural_impls.rs index 1b4008019fb..391a0a20c96 100644 --- a/compiler/rustc_middle/src/ty/structural_impls.rs +++ b/compiler/rustc_middle/src/ty/structural_impls.rs @@ -1126,6 +1126,7 @@ impl<'tcx> TypeVisitable<'tcx> for ty::Predicate<'tcx> { self.outer_exclusive_binder() > binder } + #[inline] fn has_type_flags(&self, flags: ty::TypeFlags) -> bool { self.flags().intersects(flags) } diff --git a/compiler/rustc_middle/src/ty/sty.rs b/compiler/rustc_middle/src/ty/sty.rs index 815e39aab57..8369c7e0898 100644 --- a/compiler/rustc_middle/src/ty/sty.rs +++ b/compiler/rustc_middle/src/ty/sty.rs @@ -1315,6 +1315,7 @@ pub struct Region<'tcx>(pub Interned<'tcx, RegionKind<'tcx>>); impl<'tcx> Deref for Region<'tcx> { type Target = RegionKind<'tcx>; + #[inline] fn deref(&self) -> &RegionKind<'tcx> { &self.0.0 } diff --git a/compiler/rustc_middle/src/ty/util.rs b/compiler/rustc_middle/src/ty/util.rs index 3a876df84c2..4637b30c717 100644 --- a/compiler/rustc_middle/src/ty/util.rs +++ b/compiler/rustc_middle/src/ty/util.rs @@ -1042,6 +1042,7 @@ impl<'tcx> Ty<'tcx> { ty } + #[inline] pub fn outer_exclusive_binder(self) -> ty::DebruijnIndex { self.0.outer_exclusive_binder } diff --git a/compiler/rustc_query_system/src/dep_graph/graph.rs b/compiler/rustc_query_system/src/dep_graph/graph.rs index 3291717c550..5d9a4d8ce4e 100644 --- a/compiler/rustc_query_system/src/dep_graph/graph.rs +++ b/compiler/rustc_query_system/src/dep_graph/graph.rs @@ -59,6 +59,7 @@ pub enum DepNodeColor { } impl DepNodeColor { + #[inline] pub fn is_green(self) -> bool { match self { DepNodeColor::Red => false, diff --git a/compiler/rustc_query_system/src/query/job.rs b/compiler/rustc_query_system/src/query/job.rs index f1316557c29..9f5779194af 100644 --- a/compiler/rustc_query_system/src/query/job.rs +++ b/compiler/rustc_query_system/src/query/job.rs @@ -84,6 +84,7 @@ pub struct QueryJob { impl QueryJob { /// Creates a new query job. + #[inline] pub fn new(id: QueryJobId, span: Span, parent: Option<QueryJobId>) -> Self { QueryJob { id, @@ -106,6 +107,7 @@ impl QueryJob { /// /// This does nothing for single threaded rustc, /// as there are no concurrent jobs which could be waiting on us + #[inline] pub fn signal_complete(self) { #[cfg(parallel_compiler)] { diff --git a/compiler/rustc_query_system/src/query/mod.rs b/compiler/rustc_query_system/src/query/mod.rs index de64ebb6203..f698a853d1e 100644 --- a/compiler/rustc_query_system/src/query/mod.rs +++ b/compiler/rustc_query_system/src/query/mod.rs @@ -81,6 +81,7 @@ pub struct QuerySideEffects { } impl QuerySideEffects { + #[inline] pub fn is_empty(&self) -> bool { let QuerySideEffects { diagnostics } = self; diagnostics.is_empty() diff --git a/compiler/rustc_span/src/lib.rs b/compiler/rustc_span/src/lib.rs index a329fa15320..a1f34287a5f 100644 --- a/compiler/rustc_span/src/lib.rs +++ b/compiler/rustc_span/src/lib.rs @@ -1603,6 +1603,7 @@ impl SourceFile { self.name.is_real() } + #[inline] pub fn is_imported(&self) -> bool { self.src.is_none() } |
