Skip to content

Commit 357b302

Browse files
committed
Finished moving backend-agnostic code to rustc_codegen_ssa
1 parent 83c3503 commit 357b302

32 files changed

+150
-212
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::C_usize;
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, Abi as LayoutAbi};
2526
use rustc::ty::{self, Ty};

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
@@ -22,7 +22,8 @@ use rustc::session::search_paths::PathKind;
2222
use rustc::session::Session;
2323
use rustc::middle::cstore::{NativeLibrary, LibSource, NativeLibraryKind};
2424
use rustc::middle::dependency_format::Linkage;
25-
use {CodegenResults, CrateInfo};
25+
use rustc_codegen_ssa::CrateInfo;
26+
use CodegenResults;
2627
use rustc::util::common::time;
2728
use rustc_fs_util::fix_windows_verbatim_for_gcc;
2829
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
@@ -27,8 +27,7 @@ use time_graph::{self, TimeGraph, Timeline};
2727
use llvm::{self, DiagnosticInfo, PassManager, SMDiagnostic};
2828
use llvm_util;
2929
use {CodegenResults, ModuleLlvm};
30-
use rustc_codegen_ssa::{ModuleCodegen, ModuleKind, CachedModuleCodegen, CompiledModule};
31-
use CrateInfo;
30+
use rustc_codegen_ssa::{ModuleCodegen, ModuleKind, CachedModuleCodegen, CompiledModule, CrateInfo};
3231
use rustc::hir::def_id::{CrateNum, LOCAL_CRATE};
3332
use rustc::ty::TyCtxt;
3433
use rustc::util::common::{time_ext, time_depth, set_time_depth, print_time_passes_entry};

src/librustc_codegen_llvm/base.rs

Lines changed: 8 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -24,38 +24,20 @@
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;
6042
use monomorphize::Instance;
6143
use monomorphize::partitioning::{CodegenUnit, CodegenUnitExt};
@@ -66,9 +48,8 @@ use type_of::LayoutLlvmExt;
6648
use rustc::util::nodemap::FxHashMap;
6749
use CrateInfo;
6850
use rustc_data_structures::small_c_str::SmallCStr;
69-
use rustc_data_structures::sync::Lrc;
7051

71-
use interfaces::*;
52+
use rustc_codegen_ssa::interfaces::*;
7253

7354
use std::any::Any;
7455
use std::cmp;
@@ -79,15 +60,10 @@ use std::sync::mpsc;
7960
use std::time::{Instant, Duration};
8061
use syntax_pos::Span;
8162
use syntax_pos::symbol::InternedString;
82-
use syntax::attr;
83-
use rustc::hir::{self, CodegenFnAttrs};
63+
use rustc::hir::CodegenFnAttrs;
8464

8565
use value::Value;
8666

87-
use mir::operand::OperandValue;
88-
89-
use rustc_codegen_utils::check_for_rustc_errors_attr;
90-
use std::marker::PhantomData;
9167

9268

9369
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;
@@ -571,7 +571,7 @@ impl BuilderMethods<'a, 'll, 'tcx>
571571
}
572572
load
573573
});
574-
OperandValue::Immediate(base::to_immediate(self, llval, ptr.layout))
574+
OperandValue::Immediate(to_immediate(self, llval, ptr.layout))
575575
} else if let layout::Abi::ScalarPair(ref a, ref b) = ptr.layout.abi {
576576
let load = |i, scalar: &layout::Scalar| {
577577
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 & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,30 +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};
3629

3730
use syntax::symbol::LocalInternedString;
3831
use syntax::ast::Mutability;
39-
use syntax_pos::Span;
4032

4133
pub use context::CodegenCx;
4234

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)