Remove a sorting operation from used_crates
This commit is contained in:
parent
9a27044f42
commit
2977dff116
2 changed files with 18 additions and 29 deletions
|
@ -19,7 +19,7 @@ use rustc_hir::def_id::{DefId, LOCAL_CRATE};
|
|||
use rustc_hir::lang_items::LangItem;
|
||||
use rustc_index::vec::Idx;
|
||||
use rustc_middle::middle::codegen_fn_attrs::CodegenFnAttrs;
|
||||
use rustc_middle::middle::cstore::{self, EncodedMetadata};
|
||||
use rustc_middle::middle::cstore::EncodedMetadata;
|
||||
use rustc_middle::middle::lang_items;
|
||||
use rustc_middle::mir::mono::{CodegenUnit, CodegenUnitNameBuilder, MonoItem};
|
||||
use rustc_middle::ty::layout::{HasTyCtxt, TyAndLayout};
|
||||
|
@ -769,6 +769,22 @@ impl CrateInfo {
|
|||
subsystem.to_string()
|
||||
});
|
||||
|
||||
// This list is used when generating the command line to pass through to
|
||||
// system linker. The linker expects undefined symbols on the left of the
|
||||
// command line to be defined in libraries on the right, not the other way
|
||||
// around. For more info, see some comments in the add_used_library function
|
||||
// below.
|
||||
//
|
||||
// In order to get this left-to-right dependency ordering, we use the reverse
|
||||
// postorder of all crates putting the leaves at the right-most positions.
|
||||
let used_crates = tcx
|
||||
.postorder_cnums(())
|
||||
.iter()
|
||||
.rev()
|
||||
.copied()
|
||||
.filter(|&cnum| !tcx.dep_kind(cnum).macros_only())
|
||||
.collect();
|
||||
|
||||
let mut info = CrateInfo {
|
||||
local_crate_name,
|
||||
panic_runtime: None,
|
||||
|
@ -778,7 +794,7 @@ impl CrateInfo {
|
|||
native_libraries: Default::default(),
|
||||
used_libraries: tcx.native_libraries(LOCAL_CRATE).iter().map(Into::into).collect(),
|
||||
crate_name: Default::default(),
|
||||
used_crates: cstore::used_crates(tcx),
|
||||
used_crates,
|
||||
used_crate_source: Default::default(),
|
||||
lang_item_to_crate: Default::default(),
|
||||
missing_lang_items: Default::default(),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue