Rollup merge of #78621 - solson:inline, r=m-ou-se
Inline Default::default() for atomics
Functions like `AtomicUsize::default()` are not cross-crate inlineable before this PR ([see assembly output here](https://play.rust-lang.org/?version=stable&mode=release&edition=2018&gist=e353321766418f759c69fb141d3732f8)), which can lead to unexpected performance issues when initializing a large array using this function, e.g. as seen [here](d513996a85/src/histogram.rs (L53)
) which should turn into a simple loop writing zeroes but doesn't.
r? @m-ou-se
This commit is contained in:
commit
97678b8358
@ -155,6 +155,7 @@ pub struct AtomicBool {
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
impl Default for AtomicBool {
|
||||
/// Creates an `AtomicBool` initialized to `false`.
|
||||
#[inline]
|
||||
fn default() -> Self {
|
||||
Self::new(false)
|
||||
}
|
||||
@ -1212,6 +1213,7 @@ macro_rules! atomic_int {
|
||||
|
||||
#[$stable]
|
||||
impl Default for $atomic_type {
|
||||
#[inline]
|
||||
fn default() -> Self {
|
||||
Self::new(Default::default())
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user