diff options
| author | Tomasz Miąsko <tomasz.miasko@gmail.com> | 2021-02-18 00:00:00 +0000 |
|---|---|---|
| committer | Tomasz Miąsko <tomasz.miasko@gmail.com> | 2021-02-18 00:00:00 +0000 |
| commit | a3659bbe6cfc3ff3a4cd74dd0ff31ad3632534c9 (patch) | |
| tree | 215f37e2fb0e37b9e6dc9f974f921ac786af6e3e | |
| parent | 152f6609246558be5e2582e67376194815e6ba0d (diff) | |
| download | rust-a3659bbe6cfc3ff3a4cd74dd0ff31ad3632534c9.tar.gz rust-a3659bbe6cfc3ff3a4cd74dd0ff31ad3632534c9.zip | |
Inline hot part of PatStack::head_ctor
When building rustc with `-Codegen-units=1` this inline hint ensures that obtaining already initialized head constructor does not involve a function call overhead and reduces the instruction count in match-stress-enum-check full benchmark from 11.9G to 9.8G. It shouldn't have significant impact on the currently default configuration where it reflects existing inlining decisions.
| -rw-r--r-- | compiler/rustc_mir_build/src/thir/pattern/usefulness.rs | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/compiler/rustc_mir_build/src/thir/pattern/usefulness.rs b/compiler/rustc_mir_build/src/thir/pattern/usefulness.rs index 010fe4fd524..553c0ab3166 100644 --- a/compiler/rustc_mir_build/src/thir/pattern/usefulness.rs +++ b/compiler/rustc_mir_build/src/thir/pattern/usefulness.rs @@ -439,6 +439,7 @@ impl<'p, 'tcx> PatStack<'p, 'tcx> { self.pats[0] } + #[inline] fn head_ctor<'a>(&'a self, cx: &MatchCheckCtxt<'p, 'tcx>) -> &'a Constructor<'tcx> { self.head_ctor.get_or_init(|| Constructor::from_pat(cx, self.head())) } |
