Skip to content

Commit c62d65c

Browse files
committed
Rollup merge of #33574 - michaelwoerister:collector-cleanup, r=nikomatsakis
trans-collector: Assorted fixes and refactorings needed for making trans collector-driven. As the title says. The messages on the individual commits should do a good job of explaining what they are about. r? @nikomatsakis
2 parents 8845592 + 802bb57 commit c62d65c

17 files changed

+634
-525
lines changed

src/librustc_trans/base.rs

+17-17
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ use callee::{Callee, CallArgs, ArgExprs, ArgVals};
5959
use cleanup::{self, CleanupMethods, DropHint};
6060
use closure;
6161
use common::{Block, C_bool, C_bytes_in_context, C_i32, C_int, C_uint, C_integral};
62-
use collector::{self, TransItem, TransItemState, TransItemCollectionMode};
62+
use collector::{self, TransItemState, TransItemCollectionMode};
6363
use common::{C_null, C_struct_in_context, C_u64, C_u8, C_undef};
6464
use common::{CrateContext, DropFlagHintsMap, Field, FunctionContext};
6565
use common::{Result, NodeIdAndSpan, VariantInfo};
@@ -80,8 +80,9 @@ use machine::{llalign_of_min, llsize_of, llsize_of_real};
8080
use meth;
8181
use mir;
8282
use monomorphize::{self, Instance};
83-
use partitioning::{self, PartitioningStrategy, InstantiationMode, CodegenUnit};
83+
use partitioning::{self, PartitioningStrategy, CodegenUnit};
8484
use symbol_names_test;
85+
use trans_item::TransItem;
8586
use tvec;
8687
use type_::Type;
8788
use type_of;
@@ -2941,8 +2942,8 @@ fn collect_and_partition_translation_items<'a, 'tcx>(scx: &SharedCrateContext<'a
29412942
None => TransItemCollectionMode::Lazy
29422943
};
29432944

2944-
let (items, reference_map) = time(time_passes, "translation item collection", || {
2945-
collector::collect_crate_translation_items(scx, collection_mode)
2945+
let (items, inlining_map) = time(time_passes, "translation item collection", || {
2946+
collector::collect_crate_translation_items(&scx, collection_mode)
29462947
});
29472948

29482949
let strategy = if scx.sess().opts.debugging_opts.incremental.is_some() {
@@ -2955,7 +2956,7 @@ fn collect_and_partition_translation_items<'a, 'tcx>(scx: &SharedCrateContext<'a
29552956
partitioning::partition(scx.tcx(),
29562957
items.iter().cloned(),
29572958
strategy,
2958-
&reference_map)
2959+
&inlining_map)
29592960
});
29602961

29612962
if scx.sess().opts.debugging_opts.print_trans_items.is_some() {
@@ -2983,18 +2984,17 @@ fn collect_and_partition_translation_items<'a, 'tcx>(scx: &SharedCrateContext<'a
29832984
output.push_str(&cgu_name[..]);
29842985

29852986
let linkage_abbrev = match linkage {
2986-
InstantiationMode::Def(llvm::ExternalLinkage) => "External",
2987-
InstantiationMode::Def(llvm::AvailableExternallyLinkage) => "Available",
2988-
InstantiationMode::Def(llvm::LinkOnceAnyLinkage) => "OnceAny",
2989-
InstantiationMode::Def(llvm::LinkOnceODRLinkage) => "OnceODR",
2990-
InstantiationMode::Def(llvm::WeakAnyLinkage) => "WeakAny",
2991-
InstantiationMode::Def(llvm::WeakODRLinkage) => "WeakODR",
2992-
InstantiationMode::Def(llvm::AppendingLinkage) => "Appending",
2993-
InstantiationMode::Def(llvm::InternalLinkage) => "Internal",
2994-
InstantiationMode::Def(llvm::PrivateLinkage) => "Private",
2995-
InstantiationMode::Def(llvm::ExternalWeakLinkage) => "ExternalWeak",
2996-
InstantiationMode::Def(llvm::CommonLinkage) => "Common",
2997-
InstantiationMode::Decl => "Declaration",
2987+
llvm::ExternalLinkage => "External",
2988+
llvm::AvailableExternallyLinkage => "Available",
2989+
llvm::LinkOnceAnyLinkage => "OnceAny",
2990+
llvm::LinkOnceODRLinkage => "OnceODR",
2991+
llvm::WeakAnyLinkage => "WeakAny",
2992+
llvm::WeakODRLinkage => "WeakODR",
2993+
llvm::AppendingLinkage => "Appending",
2994+
llvm::InternalLinkage => "Internal",
2995+
llvm::PrivateLinkage => "Private",
2996+
llvm::ExternalWeakLinkage => "ExternalWeak",
2997+
llvm::CommonLinkage => "Common",
29982998
};
29992999

30003000
output.push_str("[");

src/librustc_trans/callee.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -494,7 +494,7 @@ fn get_fn<'a, 'tcx>(ccx: &CrateContext<'a, 'tcx>,
494494
_ => bug!("expected fn item type, found {}", ty)
495495
};
496496

497-
let instance = Instance::mono(ccx.tcx(), def_id);
497+
let instance = Instance::mono(ccx.shared(), def_id);
498498
if let Some(&llfn) = ccx.instances().borrow().get(&instance) {
499499
return immediate_rvalue(llfn, fn_ptr_ty);
500500
}

0 commit comments

Comments
 (0)