From 8857cc2131e2f09bcb44c8867b6e6a50d9b4ae32 Mon Sep 17 00:00:00 2001 From: Scott McMurray Date: Thu, 27 Apr 2023 23:44:45 -0700 Subject: [PATCH] `inline(always)` for `lt`/`le`/`ge`/`gt` on integers and floats I happened to notice one of these not getting inlined as part of `Range::next` in ```rust bb1: { StorageLive(_5); _6 = &mut _4; StorageLive(_21); StorageLive(_14); StorageLive(_15); _15 = &((*_6).0: usize); StorageLive(_16); _16 = &((*_6).1: usize); _14 = ::lt(move _15, move _16) -> bb7; } ``` So since a call for something this trivial is never the right choice, `#[inline(always)]` seems appropriate. --- library/core/src/cmp.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/library/core/src/cmp.rs b/library/core/src/cmp.rs index 87ec35c040f..48b127716f5 100644 --- a/library/core/src/cmp.rs +++ b/library/core/src/cmp.rs @@ -1321,13 +1321,13 @@ mod impls { (true, true) => Some(Equal), } } - #[inline] + #[inline(always)] fn lt(&self, other: &$t) -> bool { (*self) < (*other) } - #[inline] + #[inline(always)] fn le(&self, other: &$t) -> bool { (*self) <= (*other) } - #[inline] + #[inline(always)] fn ge(&self, other: &$t) -> bool { (*self) >= (*other) } - #[inline] + #[inline(always)] fn gt(&self, other: &$t) -> bool { (*self) > (*other) } } )*) @@ -1359,13 +1359,13 @@ mod impls { fn partial_cmp(&self, other: &$t) -> Option { Some(self.cmp(other)) } - #[inline] + #[inline(always)] fn lt(&self, other: &$t) -> bool { (*self) < (*other) } - #[inline] + #[inline(always)] fn le(&self, other: &$t) -> bool { (*self) <= (*other) } - #[inline] + #[inline(always)] fn ge(&self, other: &$t) -> bool { (*self) >= (*other) } - #[inline] + #[inline(always)] fn gt(&self, other: &$t) -> bool { (*self) > (*other) } }