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 <https://rust.godbolt.org/z/4WKWWxj1G>
```rust
    bb1: {
        StorageLive(_5);
        _6 = &mut _4;
        StorageLive(_21);
        StorageLive(_14);
        StorageLive(_15);
        _15 = &((*_6).0: usize);
        StorageLive(_16);
        _16 = &((*_6).1: usize);
        _14 = <usize as PartialOrd>::lt(move _15, move _16) -> bb7;
    }
```

So since a call for something this trivial is never the right choice, `#[inline(always)]` seems appropriate.
This commit is contained in:
Scott McMurray 2023-04-27 23:44:45 -07:00
parent 1c42cb4ef0
commit 8857cc2131

View File

@ -1321,13 +1321,13 @@ fn partial_cmp(&self, other: &$t) -> Option<Ordering> {
(true, true) => Some(Equal), (true, true) => Some(Equal),
} }
} }
#[inline] #[inline(always)]
fn lt(&self, other: &$t) -> bool { (*self) < (*other) } fn lt(&self, other: &$t) -> bool { (*self) < (*other) }
#[inline] #[inline(always)]
fn le(&self, other: &$t) -> bool { (*self) <= (*other) } fn le(&self, other: &$t) -> bool { (*self) <= (*other) }
#[inline] #[inline(always)]
fn ge(&self, other: &$t) -> bool { (*self) >= (*other) } fn ge(&self, other: &$t) -> bool { (*self) >= (*other) }
#[inline] #[inline(always)]
fn gt(&self, other: &$t) -> bool { (*self) > (*other) } fn gt(&self, other: &$t) -> bool { (*self) > (*other) }
} }
)*) )*)
@ -1359,13 +1359,13 @@ impl PartialOrd for $t {
fn partial_cmp(&self, other: &$t) -> Option<Ordering> { fn partial_cmp(&self, other: &$t) -> Option<Ordering> {
Some(self.cmp(other)) Some(self.cmp(other))
} }
#[inline] #[inline(always)]
fn lt(&self, other: &$t) -> bool { (*self) < (*other) } fn lt(&self, other: &$t) -> bool { (*self) < (*other) }
#[inline] #[inline(always)]
fn le(&self, other: &$t) -> bool { (*self) <= (*other) } fn le(&self, other: &$t) -> bool { (*self) <= (*other) }
#[inline] #[inline(always)]
fn ge(&self, other: &$t) -> bool { (*self) >= (*other) } fn ge(&self, other: &$t) -> bool { (*self) >= (*other) }
#[inline] #[inline(always)]
fn gt(&self, other: &$t) -> bool { (*self) > (*other) } fn gt(&self, other: &$t) -> bool { (*self) > (*other) }
} }