Skip to content

Commit 015e444

Browse files
denismerigouxeddyb
authored andcommitted
Finished moving backend-agnostic code to rustc_codegen_ssa
1 parent c0a428e commit 015e444

28 files changed

+110
-154
lines changed

src/librustc_codegen_llvm/abi.rs

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

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

21-
use interfaces::*;
22+
use rustc_codegen_ssa::interfaces::*;
2223

2324
use rustc_target::abi::{HasDataLayout, LayoutOf, Size, TyLayout, Abi as LayoutAbi};
2425
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
@@ -21,7 +21,7 @@ use rustc::ty::query::Providers;
2121
use rustc_data_structures::sync::Lrc;
2222
use rustc_data_structures::fx::FxHashMap;
2323
use rustc_target::spec::PanicStrategy;
24-
use interfaces::*;
24+
use rustc_codegen_ssa::interfaces::*;
2525

2626
use attributes;
2727
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: 11 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -24,68 +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::item::DefPathBasedNames;
38+
use rustc::session::config::{self, DebugInfo};
39+
use builder::Builder;
5440
use common;
55-
use rustc_codegen_ssa::common::{RealPredicate, TypeKind, IntPredicate};
56-
use meth;
57-
use mir;
5841
use context::CodegenCx;
59-
use monomorphize::Instance;
60-
use monomorphize::partitioning::{CodegenUnit, CodegenUnitExt};
61-
use rustc_codegen_utils::symbol_names_test;
62-
use time_graph;
63-
use mono_item::{MonoItem, MonoItemExt};
64-
65-
use rustc::util::nodemap::FxHashMap;
66-
use CrateInfo;
42+
use monomorphize::partitioning::CodegenUnitExt;
43+
use rustc_codegen_ssa::mono_item::MonoItemExt;
6744
use rustc_data_structures::small_c_str::SmallCStr;
68-
use rustc_data_structures::sync::Lrc;
6945

70-
use interfaces::*;
46+
use rustc_codegen_ssa::interfaces::*;
7147

72-
use std::any::Any;
73-
use std::cmp;
7448
use std::ffi::CString;
75-
use std::marker;
76-
use std::ops::{Deref, DerefMut};
77-
use std::sync::mpsc;
78-
use std::time::{Instant, Duration};
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;
8955

9056
pub(crate) fn write_metadata<'a, 'gcx>(
9157
tcx: TyCtxt<'a, 'gcx, '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, BasicBlock};
1313
use rustc_codegen_ssa::common::{IntPredicate, TypeKind, RealPredicate};
14-
use rustc_codegen_ssa;
14+
use rustc_codegen_ssa::{self, MemFlags};
1515
use common::Funclet;
1616
use context::CodegenCx;
1717
use type_::Type;
@@ -22,11 +22,11 @@ use rustc::ty::{self, Ty, TyCtxt};
2222
use rustc::ty::layout::{self, Align, Size, TyLayout};
2323
use rustc::session::config;
2424
use rustc_data_structures::small_c_str::SmallCStr;
25-
use interfaces::*;
25+
use rustc_codegen_ssa::interfaces::*;
2626
use syntax;
27-
use base;
28-
use mir::operand::{OperandValue, OperandRef};
29-
use mir::place::PlaceRef;
27+
use rustc_codegen_ssa::base::to_immediate;
28+
use rustc_codegen_ssa::mir::operand::{OperandValue, OperandRef};
29+
use rustc_codegen_ssa::mir::place::PlaceRef;
3030
use std::borrow::Cow;
3131
use std::ops::Range;
3232
use std::ptr;
@@ -582,7 +582,7 @@ impl BuilderMethods<'a, 'tcx> for Builder<'a, 'll, 'tcx> {
582582
}
583583
load
584584
});
585-
OperandValue::Immediate(base::to_immediate(self, llval, place.layout))
585+
OperandValue::Immediate(to_immediate(self, llval, place.layout))
586586
} else if let layout::Abi::ScalarPair(ref a, ref b) = place.layout.abi {
587587
let load = |i, scalar: &layout::Scalar| {
588588
let llptr = self.struct_gep(place.llval, i as u64);

src/librustc_codegen_llvm/callee.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,10 @@ use llvm;
1919
use monomorphize::Instance;
2020
use context::CodegenCx;
2121
use value::Value;
22-
use interfaces::*;
22+
use rustc_codegen_ssa::interfaces::*;
2323

24-
use rustc::hir::def_id::DefId;
25-
use rustc::ty::{self, TypeFoldable};
24+
use rustc::ty::TypeFoldable;
2625
use rustc::ty::layout::{LayoutOf, HasTyCtxt};
27-
use rustc::ty::subst::Substs;
2826

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

src/librustc_codegen_llvm/common.rs

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,29 +13,22 @@
1313
//! Code that is useful in various codegen modules.
1414
1515
use llvm::{self, True, False, Bool, BasicBlock, OperandBundleDef};
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::{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 mir::constant::const_alloc_to_llvm;
31-
use mir::place::PlaceRef;
32-
use rustc_codegen_ssa::common::TypeKind;
25+
use consts::const_alloc_to_llvm;
26+
use rustc_codegen_ssa::mir::place::PlaceRef;
3327

3428
use libc::{c_uint, c_char};
3529

3630
use syntax::symbol::LocalInternedString;
3731
use syntax::ast::Mutability;
38-
use syntax_pos::Span;
3932

4033
pub use context::CodegenCx;
4134

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,
15+
Pointer, ErrorHandled, GlobalId};
1416
use rustc::hir::Node;
1517
use debuginfo;
16-
use base;
1718
use monomorphize::MonoItem;
1819
use common::CodegenCx;
1920
use monomorphize::Instance;
2021
use syntax_pos::Span;
22+
use rustc_target::abi::HasDataLayout;
2123
use syntax_pos::symbol::LocalInternedString;
24+
use base;
2225
use type_::Type;
2326
use type_of::LayoutLlvmExt;
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

@@ -360,7 +363,7 @@ impl StaticMethods<'tcx> for CodegenCx<'ll, 'tcx> {
360363
unsafe {
361364
let attrs = self.tcx.codegen_fn_attrs(def_id);
362365

363-
let (v, alloc) = match ::mir::codegen_static_initializer(&self, def_id) {
366+
let (v, alloc) = match codegen_static_initializer(&self, def_id) {
364367
Ok(v) => v,
365368
// Error has already been reported
366369
Err(_) => return,

0 commit comments

Comments
 (0)