Use `UnsafeCell` for fast constant thread locals This uses `UnsafeCell` instead of `static mut` for fast constant thread locals. This changes the type of the TLS shims to return `&UnsafeCell<T>` instead of `*mut T` which means they are always non-null so LLVM can optimize away the check for `Some` in `LocalKey::with` if `T` has no destructor. LLVM is currently unable to do this optimization as we lose the fact that `__getit` always returns `Some` as it gets optimized to just returning the value of the TLS shim. |
||
|---|---|---|
| .. | ||
| os_str | ||
| pal | ||
| path | ||
| personality | ||
| sync | ||
| thread_local | ||
| cmath.rs | ||
| mod.rs | ||