diff options
| author | bors <bors@rust-lang.org> | 2024-01-03 18:37:41 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2024-01-03 18:37:41 +0000 |
| commit | 139fb2214675fed8143a12f6287a3a1e6e2e866d (patch) | |
| tree | 6f260a23f1ee001180e2a59eff4a8852af21914d /compiler/rustc_codegen_llvm/src | |
| parent | 1a47f5b448f1e023e7ffd2eb57d473d619d2c04d (diff) | |
| parent | 9b2a44adc228e3a583c29f621975fde75ca9b80f (diff) | |
| download | rust-139fb2214675fed8143a12f6287a3a1e6e2e866d.tar.gz rust-139fb2214675fed8143a12f6287a3a1e6e2e866d.zip | |
Auto merge of #119549 - fmease:rollup-jxvbfes, r=fmease
Rollup of 21 pull requests Successful merges: - #119086 (Query panic!() to useful diagnostic) - #119239 (Remove unnecessary arm in `check_expr_yield`) - #119298 (suppress change-tracker warnings in CI containers) - #119319 (Document that File does not buffer reads/writes) - #119434 (rc: Take *const T in is_dangling) - #119444 (Rename `TyCtxt::is_closure` to `TyCtxt::is_closure_or_coroutine`) - #119474 (Update tracking issue of naked_functions) - #119476 (Pretty-print always-const trait predicates correctly) - #119477 (rustdoc ui: adjust tooltip z-index to be above sidebar) - #119479 (Remove two unused feature gates from rustc_query_impl) - #119487 (Minor improvements in comment on `freshen.rs`) - #119492 (Update books) - #119494 (Deny defaults for higher-ranked generic parameters) - #119498 (Update deadlinks of `strict_provenance` lints) - #119505 (Don't synthesize host effect params for trait associated functions marked const) - #119510 (Report I/O errors from rmeta encoding with emit_fatal) - #119512 (Mark myself as back from leave) - #119514 (coverage: Avoid a query stability hazard in `function_coverage_map`) - #119523 (llvm: Allow `noundef` in codegen tests) - #119534 (Update `thread_local` examples to use `local_key_cell_methods`) - #119544 (Fix: Properly set vendor in i686-win7-windows-msvc target) r? `@ghost` `@rustbot` modify labels: rollup
Diffstat (limited to 'compiler/rustc_codegen_llvm/src')
| -rw-r--r-- | compiler/rustc_codegen_llvm/src/attributes.rs | 2 | ||||
| -rw-r--r-- | compiler/rustc_codegen_llvm/src/coverageinfo/mapgen.rs | 5 | ||||
| -rw-r--r-- | compiler/rustc_codegen_llvm/src/coverageinfo/mod.rs | 8 |
3 files changed, 5 insertions, 10 deletions
diff --git a/compiler/rustc_codegen_llvm/src/attributes.rs b/compiler/rustc_codegen_llvm/src/attributes.rs index 3cc33b83434..b3fa7b7cd44 100644 --- a/compiler/rustc_codegen_llvm/src/attributes.rs +++ b/compiler/rustc_codegen_llvm/src/attributes.rs @@ -481,7 +481,7 @@ pub fn from_fn_attrs<'ll, 'tcx>( // `+multivalue` feature because the purpose of the wasm abi is to match // the WebAssembly specification, which has this feature. This won't be // needed when LLVM enables this `multivalue` feature by default. - if !cx.tcx.is_closure(instance.def_id()) { + if !cx.tcx.is_closure_or_coroutine(instance.def_id()) { let abi = cx.tcx.fn_sig(instance.def_id()).skip_binder().abi(); if abi == Abi::Wasm { function_features.push("+multivalue".to_string()); diff --git a/compiler/rustc_codegen_llvm/src/coverageinfo/mapgen.rs b/compiler/rustc_codegen_llvm/src/coverageinfo/mapgen.rs index 33bfde03a31..51df14df644 100644 --- a/compiler/rustc_codegen_llvm/src/coverageinfo/mapgen.rs +++ b/compiler/rustc_codegen_llvm/src/coverageinfo/mapgen.rs @@ -58,11 +58,6 @@ pub fn finalize(cx: &CodegenCx<'_, '_>) { return; } - // The entries of the map are only used to get a list of all files with - // coverage info. In the end the list of files is passed into - // `GlobalFileTable::new()` which internally do `.sort_unstable_by()`, so - // the iteration order here does not matter. - #[allow(rustc::potential_query_instability)] let function_coverage_entries = function_coverage_map .into_iter() .map(|(instance, function_coverage)| (instance, function_coverage.into_finished())) diff --git a/compiler/rustc_codegen_llvm/src/coverageinfo/mod.rs b/compiler/rustc_codegen_llvm/src/coverageinfo/mod.rs index 0befbb5a39b..733a77d24c2 100644 --- a/compiler/rustc_codegen_llvm/src/coverageinfo/mod.rs +++ b/compiler/rustc_codegen_llvm/src/coverageinfo/mod.rs @@ -10,7 +10,7 @@ use rustc_codegen_ssa::traits::{ BaseTypeMethods, BuilderMethods, ConstMethods, CoverageInfoBuilderMethods, MiscMethods, StaticMethods, }; -use rustc_data_structures::fx::FxHashMap; +use rustc_data_structures::fx::{FxHashMap, FxIndexMap}; use rustc_llvm::RustString; use rustc_middle::bug; use rustc_middle::mir::coverage::CoverageKind; @@ -30,7 +30,7 @@ const VAR_ALIGN_BYTES: usize = 8; pub struct CrateCoverageContext<'ll, 'tcx> { /// Coverage data for each instrumented function identified by DefId. pub(crate) function_coverage_map: - RefCell<FxHashMap<Instance<'tcx>, FunctionCoverageCollector<'tcx>>>, + RefCell<FxIndexMap<Instance<'tcx>, FunctionCoverageCollector<'tcx>>>, pub(crate) pgo_func_name_var_map: RefCell<FxHashMap<Instance<'tcx>, &'ll llvm::Value>>, } @@ -44,8 +44,8 @@ impl<'ll, 'tcx> CrateCoverageContext<'ll, 'tcx> { pub fn take_function_coverage_map( &self, - ) -> FxHashMap<Instance<'tcx>, FunctionCoverageCollector<'tcx>> { - self.function_coverage_map.replace(FxHashMap::default()) + ) -> FxIndexMap<Instance<'tcx>, FunctionCoverageCollector<'tcx>> { + self.function_coverage_map.replace(FxIndexMap::default()) } } |
