Skip to content

Commit 9fe9347

Browse files
committed
Finished moving backend-agnostic code to rustc_codegen_ssa
1 parent 431601c commit 9fe9347

32 files changed

+150
-226
lines changed

src/librustc_codegen_llvm/abi.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,18 @@
99
// except according to those terms.
1010

1111
use llvm::{self, AttributePlace};
12-
use builder::{Builder, MemFlags};
13-
use common::ty_fn_sig;
12+
use rustc_codegen_ssa::MemFlags;
13+
use builder::Builder;
14+
use rustc_codegen_ssa::common::ty_fn_sig;
1415
use context::CodegenCx;
15-
use mir::place::PlaceRef;
16-
use mir::operand::OperandValue;
16+
use rustc_codegen_ssa::mir::place::PlaceRef;
17+
use rustc_codegen_ssa::mir::operand::OperandValue;
1718
use type_::Type;
1819
use type_of::{LayoutLlvmExt, PointerKind};
1920
use value::Value;
2021
use rustc_target::abi::call::ArgType;
2122

22-
use interfaces::*;
23+
use rustc_codegen_ssa::interfaces::*;
2324

2425
use rustc_target::abi::{LayoutOf, Size, TyLayout};
2526
use rustc::ty::{self, Ty, Instance};

src/librustc_codegen_llvm/asm.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@ use builder::Builder;
1515
use value::Value;
1616

1717
use rustc::hir;
18-
use interfaces::*;
18+
use rustc_codegen_ssa::interfaces::*;
1919

20-
use mir::place::PlaceRef;
21-
use mir::operand::OperandValue;
20+
use rustc_codegen_ssa::mir::place::PlaceRef;
21+
use rustc_codegen_ssa::mir::operand::OperandValue;
2222

2323
use std::ffi::CString;
2424
use libc::{c_uint, c_char};

src/librustc_codegen_llvm/attributes.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ use rustc::ty::query::Providers;
2020
use rustc_data_structures::sync::Lrc;
2121
use rustc_data_structures::fx::FxHashMap;
2222
use rustc_target::spec::PanicStrategy;
23-
use interfaces::*;
23+
use rustc_codegen_ssa::interfaces::*;
2424

2525
use attributes;
2626
use llvm::{self, Attribute};

src/librustc_codegen_llvm/back/link.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ use rustc::session::search_paths::PathKind;
2424
use rustc::session::Session;
2525
use rustc::middle::cstore::{NativeLibrary, LibSource, NativeLibraryKind};
2626
use rustc::middle::dependency_format::Linkage;
27-
use {CodegenResults, CrateInfo};
27+
use rustc_codegen_ssa::CrateInfo;
28+
use CodegenResults;
2829
use rustc::util::common::time;
2930
use rustc_fs_util::fix_windows_verbatim_for_gcc;
3031
use rustc::hir::def_id::CrateNum;

src/librustc_codegen_llvm/back/write.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,7 @@ use time_graph::{self, TimeGraph, Timeline};
3030
use llvm::{self, DiagnosticInfo, PassManager, SMDiagnostic};
3131
use llvm_util;
3232
use {CodegenResults, ModuleLlvm};
33-
use rustc_codegen_ssa::{ModuleCodegen, ModuleKind, CachedModuleCodegen, CompiledModule};
34-
use CrateInfo;
33+
use rustc_codegen_ssa::{ModuleCodegen, ModuleKind, CachedModuleCodegen, CompiledModule, CrateInfo};
3534
use rustc::hir::def_id::{CrateNum, LOCAL_CRATE};
3635
use rustc::ty::TyCtxt;
3736
use rustc::util::common::{time_ext, time_depth, set_time_depth, print_time_passes_entry};

src/librustc_codegen_llvm/base.rs

Lines changed: 11 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -24,69 +24,34 @@
2424
//! int) and rec(x=int, y=int, z=int) will have the same llvm::Type.
2525
2626
use super::ModuleLlvm;
27-
use rustc_codegen_ssa::{ModuleCodegen, ModuleKind, CachedModuleCodegen};
27+
use rustc_codegen_ssa::{ModuleCodegen, ModuleKind};
28+
use rustc_codegen_ssa::base::maybe_create_entry_wrapper;
2829
use super::LlvmCodegenBackend;
2930

30-
use abi;
3131
use back::write;
3232
use llvm;
3333
use metadata;
34-
use rustc::dep_graph::cgu_reuse_tracker::CguReuse;
35-
use rustc::hir::def_id::{CrateNum, DefId, LOCAL_CRATE};
36-
use rustc::middle::lang_items::StartFnLangItem;
37-
use rustc::middle::weak_lang_items;
38-
use rustc::mir::mono::{Linkage, Visibility, Stats, CodegenUnitNameBuilder};
34+
use rustc::mir::mono::{Linkage, Visibility, Stats};
3935
use rustc::middle::cstore::{EncodedMetadata};
40-
use rustc::ty::{self, Ty, TyCtxt};
41-
use rustc::ty::layout::{self, Align, TyLayout, LayoutOf, HasTyCtxt};
42-
use rustc::ty::query::Providers;
43-
use rustc::middle::cstore::{self, LinkagePreference};
36+
use rustc::ty::TyCtxt;
4437
use rustc::middle::exported_symbols;
45-
use rustc::util::common::{time, print_time_passes_entry};
46-
use rustc::util::profiling::ProfileCategory;
47-
use rustc::session::config::{self, DebugInfo, EntryFnType, Lto};
48-
use rustc::session::Session;
49-
use rustc_incremental;
50-
use mir::place::PlaceRef;
51-
use builder::{Builder, MemFlags};
52-
use callee;
53-
use rustc_mir::monomorphize::collector::{self, MonoItemCollectionMode};
54-
use rustc_mir::monomorphize::item::DefPathBasedNames;
38+
use rustc::session::config::{self, DebugInfo};
39+
use builder::Builder;
5540
use common;
56-
use rustc_codegen_ssa::common::{RealPredicate, TypeKind, IntPredicate};
57-
use meth;
58-
use mir;
5941
use context::CodegenCx;
60-
use monomorphize::Instance;
61-
use monomorphize::partitioning::{self, PartitioningStrategy, CodegenUnit, CodegenUnitExt};
62-
use rustc_codegen_utils::symbol_names_test;
63-
use time_graph;
64-
use mono_item::{MonoItem, BaseMonoItemExt, MonoItemExt};
65-
66-
use rustc::util::nodemap::{FxHashMap, DefIdSet};
67-
use CrateInfo;
42+
use monomorphize::partitioning::CodegenUnitExt;
43+
use rustc_codegen_ssa::mono_item::MonoItemExt;
6844
use rustc_data_structures::small_c_str::SmallCStr;
69-
use rustc_data_structures::sync::Lrc;
7045

71-
use interfaces::*;
46+
use rustc_codegen_ssa::interfaces::*;
7247

73-
use std::any::Any;
7448
use std::ffi::CString;
75-
use std::sync::Arc;
76-
use std::time::{Instant, Duration};
77-
use std::cmp;
78-
use std::sync::mpsc;
79-
use syntax_pos::Span;
49+
use std::time::Instant;
8050
use syntax_pos::symbol::InternedString;
81-
use syntax::attr;
82-
use rustc::hir::{self, CodegenFnAttrs};
51+
use rustc::hir::CodegenFnAttrs;
8352

8453
use value::Value;
8554

86-
use mir::operand::OperandValue;
87-
88-
use rustc_codegen_utils::check_for_rustc_errors_attr;
89-
use std::marker::PhantomData;
9055

9156

9257
pub(crate) fn write_metadata<'a, 'gcx>(

src/librustc_codegen_llvm/builder.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
use llvm::{AtomicRmwBinOp, AtomicOrdering, SynchronizationScope, AsmDialect};
1212
use llvm::{self, False, OperandBundleDef, BasicBlock};
1313
use rustc_codegen_ssa::common::{IntPredicate, TypeKind, RealPredicate};
14-
use rustc_codegen_ssa;
14+
use rustc_codegen_ssa::{self, MemFlags};
1515
use context::CodegenCx;
1616
use type_::Type;
1717
use type_of::LayoutLlvmExt;
@@ -21,11 +21,11 @@ use rustc::ty::TyCtxt;
2121
use rustc::ty::layout::{self, Align, Size};
2222
use rustc::session::config;
2323
use rustc_data_structures::small_c_str::SmallCStr;
24-
use interfaces::*;
24+
use rustc_codegen_ssa::interfaces::*;
2525
use syntax;
26-
use base;
27-
use mir::operand::{OperandValue, OperandRef};
28-
use mir::place::PlaceRef;
26+
use rustc_codegen_ssa::base::to_immediate;
27+
use rustc_codegen_ssa::mir::operand::{OperandValue, OperandRef};
28+
use rustc_codegen_ssa::mir::place::PlaceRef;
2929
use std::borrow::Cow;
3030
use std::ops::Range;
3131
use std::ptr;
@@ -573,7 +573,7 @@ impl BuilderMethods<'a, 'll, 'tcx>
573573
}
574574
load
575575
});
576-
OperandValue::Immediate(base::to_immediate(self, llval, ptr.layout))
576+
OperandValue::Immediate(to_immediate(self, llval, ptr.layout))
577577
} else if let layout::Abi::ScalarPair(ref a, ref b) = ptr.layout.abi {
578578
let load = |i, scalar: &layout::Scalar| {
579579
let llptr = self.struct_gep(ptr.llval, i as u64);

src/librustc_codegen_llvm/callee.rs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,15 @@
1515
//! closure.
1616
1717
use attributes;
18-
use common;
18+
use rustc_codegen_ssa::common;
1919
use llvm;
2020
use monomorphize::Instance;
2121
use context::CodegenCx;
2222
use value::Value;
23-
use interfaces::*;
23+
use rustc_codegen_ssa::interfaces::*;
2424

25-
use rustc::hir::def_id::DefId;
26-
use rustc::ty::{self, TypeFoldable};
25+
use rustc::ty::TypeFoldable;
2726
use rustc::ty::layout::LayoutOf;
28-
use rustc::ty::subst::Substs;
2927

3028
/// Codegens a reference to a fn/method item, monomorphizing and
3129
/// inlining as it goes.

src/librustc_codegen_llvm/common.rs

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,32 +13,22 @@
1313
//! Code that is useful in various codegen modules.
1414
1515
use llvm::{self, True, False, Bool, BasicBlock};
16-
use rustc::hir::def_id::DefId;
17-
use rustc::middle::lang_items::LangItem;
1816
use abi;
19-
use base;
2017
use consts;
2118
use type_::Type;
2219
use type_of::LayoutLlvmExt;
2320
use value::Value;
24-
use interfaces::*;
21+
use rustc_codegen_ssa::interfaces::*;
2522

26-
use rustc::ty::{self, Ty, TyCtxt};
2723
use rustc::ty::layout::{HasDataLayout, LayoutOf, self, TyLayout, Size};
2824
use rustc::mir::interpret::{Scalar, AllocType, Allocation};
29-
use rustc::hir;
30-
use interfaces::BuilderMethods;
31-
use mir::constant::const_alloc_to_llvm;
32-
use mir::place::PlaceRef;
33-
use rustc_codegen_ssa::common::TypeKind;
25+
use consts::const_alloc_to_llvm;
26+
use rustc_codegen_ssa::mir::place::PlaceRef;
3427

3528
use libc::{c_uint, c_char};
36-
use std::iter;
3729

38-
use rustc_target::spec::abi::Abi;
3930
use syntax::symbol::LocalInternedString;
4031
use syntax::ast::Mutability;
41-
use syntax_pos::Span;
4232

4333
pub use context::CodegenCx;
4434

src/librustc_codegen_llvm/consts.rs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,24 @@
1111
use libc::c_uint;
1212
use llvm::{self, SetUnnamedAddr, True};
1313
use rustc::hir::def_id::DefId;
14+
use rustc::mir::interpret::{ConstValue, Allocation, read_target_uint, Pointer, ConstEvalErr, GlobalId};
1415
use rustc::hir::Node;
1516
use debuginfo;
16-
use base;
1717
use monomorphize::MonoItem;
1818
use common::CodegenCx;
1919
use monomorphize::Instance;
2020
use syntax_pos::Span;
21+
use rustc_target::abi::HasDataLayout;
2122
use syntax_pos::symbol::LocalInternedString;
23+
use base;
2224
use type_::Type;
2325
use type_of::LayoutLlvmExt;
26+
use rustc_data_structures::sync::Lrc;
2427
use value::Value;
2528
use rustc::ty::{self, Ty};
26-
use interfaces::*;
29+
use rustc_codegen_ssa::interfaces::*;
2730

28-
use rustc::ty::layout::{Align, LayoutOf};
31+
use rustc::ty::layout::{self, Size, Align, LayoutOf};
2932

3033
use rustc::hir::{self, CodegenFnAttrs, CodegenFnAttrFlags};
3134

@@ -363,7 +366,7 @@ impl StaticMethods<'ll> for CodegenCx<'ll, 'tcx, &'ll Value> {
363366
unsafe {
364367
let attrs = &self.tcx.codegen_fn_attrs(def_id);
365368

366-
let (v, alloc) = match ::mir::codegen_static_initializer(&self, def_id) {
369+
let (v, alloc) = match codegen_static_initializer(&self, def_id) {
367370
Ok(v) => v,
368371
// Error has already been reported
369372
Err(_) => return,

0 commit comments

Comments
 (0)