Skip to content

Commit

Permalink
Rollup merge of #76262 - howard0su:patch-1, r=cramertj
Browse files Browse the repository at this point in the history
Use inline(never) instead of cold

inline(never) is better way to avoid optimizer to inline the function instead of cold.
  • Loading branch information
RalfJung authored Sep 16, 2020
2 parents fd86705 + a80d390 commit 19a62db
Showing 1 changed file with 2 additions and 3 deletions.
5 changes: 2 additions & 3 deletions library/std/src/thread/local.rs
Original file line number Diff line number Diff line change
Expand Up @@ -424,10 +424,9 @@ pub mod fast {
// thread_local's, or it is being recursively initialized.
//
// Macos: Inlining this function can cause two `tlv_get_addr` calls to
// be performed for every call to `Key::get`. The #[cold] hint makes
// that less likely.
// be performed for every call to `Key::get`.
// LLVM issue: https://bugs.llvm.org/show_bug.cgi?id=41722
#[cold]
#[inline(never)]
unsafe fn try_initialize<F: FnOnce() -> T>(&self, init: F) -> Option<&'static T> {
if !mem::needs_drop::<T>() || self.try_register_dtor() {
Some(self.inner.initialize(init))
Expand Down

0 comments on commit 19a62db

Please sign in to comment.