diff options
| author | bors <bors@rust-lang.org> | 2023-02-22 08:44:30 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2023-02-22 08:44:30 +0000 |
| commit | bd4a96a12d0bf6dc12edf20a45df3a33052c9d7d (patch) | |
| tree | ed3ba2827ca35cc6c3da1d26b1de65fc63799745 /compiler/rustc_middle/src | |
| parent | f9216b75646cde0c4c69ae00232778a47fc893d3 (diff) | |
| parent | decfb4d123651a0673db47542e18ca60d1c501ac (diff) | |
Auto merge of #108300 - oli-obk:elsa, r=eholk
Use a lock-free datastructure for source_span follow up to the perf regression in https://github.com/rust-lang/rust/pull/105462 The main regression is likely the CStore, but let's evaluate the perf impact of this on its own
Diffstat (limited to 'compiler/rustc_middle/src')
| -rw-r--r-- | compiler/rustc_middle/src/ty/context.rs | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/compiler/rustc_middle/src/ty/context.rs b/compiler/rustc_middle/src/ty/context.rs index 27f069275cf..7e6a6e71670 100644 --- a/compiler/rustc_middle/src/ty/context.rs +++ b/compiler/rustc_middle/src/ty/context.rs @@ -1030,7 +1030,7 @@ impl<'tcx> TyCtxt<'tcx> { /// system if the result is otherwise tracked through queries #[inline] pub fn source_span_untracked(self, def_id: LocalDefId) -> Span { - self.untracked.source_span.read().get(def_id).copied().unwrap_or(DUMMY_SP) + self.untracked.source_span.get(def_id).unwrap_or(DUMMY_SP) } #[inline(always)] @@ -2525,6 +2525,5 @@ pub fn provide(providers: &mut ty::query::Providers) { // We want to check if the panic handler was defined in this crate tcx.lang_items().panic_impl().map_or(false, |did| did.is_local()) }; - providers.source_span = - |tcx, def_id| tcx.untracked.source_span.read().get(def_id).copied().unwrap_or(DUMMY_SP); + providers.source_span = |tcx, def_id| tcx.untracked.source_span.get(def_id).unwrap_or(DUMMY_SP); } |
