Skip to content

Commit ebaba3b

Browse files
committed
Move Linkage and Visibility to codegen_fn_attrs.
1 parent e58d3f5 commit ebaba3b

File tree

13 files changed

+45
-45
lines changed

13 files changed

+45
-45
lines changed

compiler/rustc_codegen_cranelift/src/constant.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use rustc_span::DUMMY_SP;
44

55
use rustc_data_structures::fx::FxHashSet;
66
use rustc_errors::ErrorReported;
7-
use rustc_middle::middle::codegen_fn_attrs::CodegenFnAttrFlags;
7+
use rustc_middle::middle::codegen_fn_attrs::{CodegenFnAttrFlags, Linkage as RLinkage};
88
use rustc_middle::mir::interpret::{
99
read_target_uint, AllocId, Allocation, ConstValue, ErrorHandled, GlobalAlloc, Pointer, Scalar,
1010
};
@@ -292,8 +292,8 @@ fn data_id_for_static(
292292
let rlinkage = tcx.codegen_fn_attrs(def_id).linkage;
293293
let linkage = if definition {
294294
crate::linkage::get_static_linkage(tcx, def_id)
295-
} else if rlinkage == Some(rustc_middle::mir::mono::Linkage::ExternalWeak)
296-
|| rlinkage == Some(rustc_middle::mir::mono::Linkage::WeakAny)
295+
} else if rlinkage == Some(RLinkage::ExternalWeak)
296+
|| rlinkage == Some(RLinkage::WeakAny)
297297
{
298298
Linkage::Preemptible
299299
} else {

compiler/rustc_codegen_cranelift/src/driver/mod.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33
44
use std::any::Any;
55

6+
use rustc_middle::middle::codegen_fn_attrs::{Linkage as RLinkage, Visibility};
67
use rustc_middle::middle::cstore::EncodedMetadata;
7-
use rustc_middle::mir::mono::{Linkage as RLinkage, MonoItem, Visibility};
8+
use rustc_middle::mir::mono::MonoItem;
89

910
use crate::prelude::*;
1011

compiler/rustc_codegen_cranelift/src/linkage.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
use rustc_middle::mir::mono::{Linkage as RLinkage, MonoItem, Visibility};
1+
use rustc_middle::middle::codegen_fn_attrs::{Linkage as RLinkage, Visibility};
2+
use rustc_middle::mir::mono::MonoItem;
23

34
use crate::prelude::*;
45

compiler/rustc_codegen_llvm/src/base.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,9 @@ use rustc_codegen_ssa::traits::*;
2929
use rustc_codegen_ssa::{ModuleCodegen, ModuleKind};
3030
use rustc_data_structures::small_c_str::SmallCStr;
3131
use rustc_middle::dep_graph;
32-
use rustc_middle::middle::codegen_fn_attrs::CodegenFnAttrs;
32+
use rustc_middle::middle::codegen_fn_attrs::{CodegenFnAttrs, Linkage, Visibility};
3333
use rustc_middle::middle::cstore::EncodedMetadata;
3434
use rustc_middle::middle::exported_symbols;
35-
use rustc_middle::mir::mono::{Linkage, Visibility};
3635
use rustc_middle::ty::TyCtxt;
3736
use rustc_session::config::{DebugInfo, SanitizerSet};
3837
use rustc_span::symbol::Symbol;

compiler/rustc_codegen_llvm/src/mono_item.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ use crate::llvm;
66
use crate::type_of::LayoutLlvmExt;
77
use rustc_codegen_ssa::traits::*;
88
use rustc_hir::def_id::{DefId, LOCAL_CRATE};
9+
use rustc_middle::middle::codegen_fn_attrs::{Linkage, Visibility};
910
pub use rustc_middle::mir::mono::MonoItem;
10-
use rustc_middle::mir::mono::{Linkage, Visibility};
1111
use rustc_middle::ty::layout::FnAbiExt;
1212
use rustc_middle::ty::{self, Instance, TypeFoldable};
1313
use rustc_target::abi::LayoutOf;

compiler/rustc_codegen_ssa/src/back/symbol_export.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use rustc_hir as hir;
77
use rustc_hir::def_id::{CrateNum, DefId, DefIdMap, CRATE_DEF_INDEX, LOCAL_CRATE};
88
use rustc_hir::Node;
99
use rustc_index::vec::IndexVec;
10-
use rustc_middle::middle::codegen_fn_attrs::CodegenFnAttrFlags;
10+
use rustc_middle::middle::codegen_fn_attrs::{CodegenFnAttrFlags, Linkage, Visibility};
1111
use rustc_middle::middle::exported_symbols::{
1212
metadata_symbol_name, ExportedSymbol, SymbolExportLevel,
1313
};
@@ -221,7 +221,7 @@ fn exported_symbols_provider_local(
221221
}
222222

223223
if tcx.sess.opts.share_generics() && tcx.local_crate_exports_generics() {
224-
use rustc_middle::mir::mono::{Linkage, MonoItem, Visibility};
224+
use rustc_middle::mir::mono::MonoItem;
225225
use rustc_middle::ty::InstanceDef;
226226

227227
// Normally, we require that shared monomorphizations are not hidden,

compiler/rustc_codegen_ssa/src/mono_item.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use crate::base;
22
use crate::traits::*;
33
use rustc_hir as hir;
4-
use rustc_middle::mir::mono::{Linkage, Visibility};
4+
use rustc_middle::middle::codegen_fn_attrs::{Linkage, Visibility};
55
use rustc_middle::ty::layout::HasTyCtxt;
66

77
use rustc_middle::mir::mono::MonoItem;

compiler/rustc_codegen_ssa/src/traits/declare.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use super::BackendTypes;
22
use rustc_hir::def_id::DefId;
3-
use rustc_middle::mir::mono::{Linkage, Visibility};
3+
use rustc_middle::middle::codegen_fn_attrs::{Linkage, Visibility};
44
use rustc_middle::ty::Instance;
55

66
pub trait PreDefineMethods<'tcx>: BackendTypes {

compiler/rustc_middle/src/middle/codegen_fn_attrs.rs

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,32 @@
1-
use crate::mir::mono::Linkage;
21
use rustc_attr::{InlineAttr, InstructionSetAttr, OptimizeAttr};
32
use rustc_session::config::SanitizerSet;
43
use rustc_span::symbol::Symbol;
54

5+
/// Specifies the linkage type for a `MonoItem`.
6+
///
7+
/// See <https://llvm.org/docs/LangRef.html#linkage-types> for more details about these variants.
8+
#[derive(Copy, Clone, PartialEq, Debug, TyEncodable, TyDecodable, HashStable)]
9+
pub enum Linkage {
10+
External,
11+
AvailableExternally,
12+
LinkOnceAny,
13+
LinkOnceODR,
14+
WeakAny,
15+
WeakODR,
16+
Appending,
17+
Internal,
18+
Private,
19+
ExternalWeak,
20+
Common,
21+
}
22+
23+
#[derive(Copy, Clone, PartialEq, Debug, HashStable)]
24+
pub enum Visibility {
25+
Default,
26+
Hidden,
27+
Protected,
28+
}
29+
630
#[derive(Clone, TyEncodable, TyDecodable, HashStable)]
731
pub struct CodegenFnAttrs {
832
pub flags: CodegenFnAttrFlags,

compiler/rustc_middle/src/mir/mono.rs

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
use crate::dep_graph::{DepConstructor, DepNode, WorkProduct, WorkProductId};
22
use crate::ich::{NodeIdHashingMode, StableHashingContext};
3+
use crate::middle::codegen_fn_attrs::{Linkage, Visibility};
34
use crate::ty::{subst::InternalSubsts, Instance, InstanceDef, SymbolName, TyCtxt};
45
use rustc_attr::InlineAttr;
56
use rustc_data_structures::base_n;
@@ -226,31 +227,6 @@ pub struct CodegenUnit<'tcx> {
226227
size_estimate: Option<usize>,
227228
}
228229

229-
/// Specifies the linkage type for a `MonoItem`.
230-
///
231-
/// See <https://llvm.org/docs/LangRef.html#linkage-types> for more details about these variants.
232-
#[derive(Copy, Clone, PartialEq, Debug, TyEncodable, TyDecodable, HashStable)]
233-
pub enum Linkage {
234-
External,
235-
AvailableExternally,
236-
LinkOnceAny,
237-
LinkOnceODR,
238-
WeakAny,
239-
WeakODR,
240-
Appending,
241-
Internal,
242-
Private,
243-
ExternalWeak,
244-
Common,
245-
}
246-
247-
#[derive(Copy, Clone, PartialEq, Debug, HashStable)]
248-
pub enum Visibility {
249-
Default,
250-
Hidden,
251-
Protected,
252-
}
253-
254230
impl<'tcx> CodegenUnit<'tcx> {
255231
pub fn new(name: Symbol) -> CodegenUnit<'tcx> {
256232
CodegenUnit { name, items: Default::default(), size_estimate: None }

0 commit comments

Comments
 (0)