Skip to content

Commit 31dee75

Browse files
committed
Beginning of moving all backend-agnostic code to rustc_codegen_ssa
1 parent 9a05142 commit 31dee75

File tree

29 files changed

+274
-200
lines changed

29 files changed

+274
-200
lines changed

src/Cargo.lock

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2128,6 +2128,18 @@ dependencies = [
21282128
"rustc_llvm 0.0.0",
21292129
]
21302130

2131+
[[package]]
2132+
name = "rustc_codegen_ssa"
2133+
version = "0.0.0"
2134+
dependencies = [
2135+
"rustc 0.0.0",
2136+
"rustc_data_structures 0.0.0",
2137+
"rustc_mir 0.0.0",
2138+
"rustc_target 0.0.0",
2139+
"syntax 0.0.0",
2140+
"syntax_pos 0.0.0",
2141+
]
2142+
21312143
[[package]]
21322144
name = "rustc_codegen_utils"
21332145
version = "0.0.0"
@@ -2184,6 +2196,7 @@ dependencies = [
21842196
"rustc-rayon 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
21852197
"rustc_allocator 0.0.0",
21862198
"rustc_borrowck 0.0.0",
2199+
"rustc_codegen_ssa 0.0.0",
21872200
"rustc_codegen_utils 0.0.0",
21882201
"rustc_data_structures 0.0.0",
21892202
"rustc_errors 0.0.0",

src/librustc_codegen_llvm/back/lto.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ use rustc::util::common::time_ext;
2525
use rustc_data_structures::fx::FxHashMap;
2626
use time_graph::Timeline;
2727
use ModuleLlvm;
28-
use rustc_codegen_utils::{ModuleCodegen, ModuleKind};
28+
use rustc_codegen_ssa::{ModuleCodegen, ModuleKind};
2929

3030
use libc;
3131

src/librustc_codegen_llvm/back/write.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +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_utils::{ModuleCodegen, ModuleKind, CachedModuleCodegen, CompiledModule};
33+
use rustc_codegen_ssa::{ModuleCodegen, ModuleKind, CachedModuleCodegen, CompiledModule};
3434
use CrateInfo;
3535
use rustc::hir::def_id::{CrateNum, LOCAL_CRATE};
3636
use rustc::ty::TyCtxt;

src/librustc_codegen_llvm/base.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
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_utils::{ModuleCodegen, ModuleKind, CachedModuleCodegen};
27+
use rustc_codegen_ssa::{ModuleCodegen, ModuleKind, CachedModuleCodegen};
2828
use super::LlvmCodegenBackend;
2929

3030
use abi;
@@ -53,7 +53,7 @@ use callee;
5353
use rustc_mir::monomorphize::collector::{self, MonoItemCollectionMode};
5454
use rustc_mir::monomorphize::item::DefPathBasedNames;
5555
use common;
56-
use rustc_codegen_utils::common::{RealPredicate, TypeKind, IntPredicate};
56+
use rustc_codegen_ssa::common::{RealPredicate, TypeKind, IntPredicate};
5757
use meth;
5858
use mir;
5959
use context::CodegenCx;

src/librustc_codegen_llvm/builder.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010

1111
use llvm::{AtomicRmwBinOp, AtomicOrdering, SynchronizationScope, AsmDialect};
1212
use llvm::{self, False, OperandBundleDef, BasicBlock};
13-
use rustc_codegen_utils::common::{IntPredicate, TypeKind, RealPredicate};
14-
use rustc_codegen_utils;
13+
use rustc_codegen_ssa::common::{IntPredicate, TypeKind, RealPredicate};
14+
use rustc_codegen_ssa;
1515
use context::CodegenCx;
1616
use type_::Type;
1717
use type_of::LayoutLlvmExt;
@@ -198,7 +198,7 @@ impl BuilderMethods<'a, 'll, 'tcx>
198198
args: &[&'ll Value],
199199
then: &'ll BasicBlock,
200200
catch: &'ll BasicBlock,
201-
bundle: Option<&rustc_codegen_utils::common::OperandBundleDef<'ll, &'ll Value>>
201+
bundle: Option<&rustc_codegen_ssa::common::OperandBundleDef<'ll, &'ll Value>>
202202
) -> &'ll Value {
203203
self.count_insn("invoke");
204204

@@ -516,7 +516,7 @@ impl BuilderMethods<'a, 'll, 'tcx>
516516
fn atomic_load(
517517
&self,
518518
ptr: &'ll Value,
519-
order: rustc_codegen_utils::common::AtomicOrdering,
519+
order: rustc_codegen_ssa::common::AtomicOrdering,
520520
align: Align
521521
) -> &'ll Value {
522522
self.count_insn("load.atomic");
@@ -638,7 +638,7 @@ impl BuilderMethods<'a, 'll, 'tcx>
638638
}
639639

640640
fn atomic_store(&self, val: &'ll Value, ptr: &'ll Value,
641-
order: rustc_codegen_utils::common::AtomicOrdering, align: Align) {
641+
order: rustc_codegen_ssa::common::AtomicOrdering, align: Align) {
642642
debug!("Store {:?} -> {:?}", val, ptr);
643643
self.count_insn("store.atomic");
644644
let ptr = self.check_store(val, ptr);
@@ -1170,8 +1170,8 @@ impl BuilderMethods<'a, 'll, 'tcx>
11701170
dst: &'ll Value,
11711171
cmp: &'ll Value,
11721172
src: &'ll Value,
1173-
order: rustc_codegen_utils::common::AtomicOrdering,
1174-
failure_order: rustc_codegen_utils::common::AtomicOrdering,
1173+
order: rustc_codegen_ssa::common::AtomicOrdering,
1174+
failure_order: rustc_codegen_ssa::common::AtomicOrdering,
11751175
weak: bool,
11761176
) -> &'ll Value {
11771177
let weak = if weak { llvm::True } else { llvm::False };
@@ -1189,10 +1189,10 @@ impl BuilderMethods<'a, 'll, 'tcx>
11891189
}
11901190
fn atomic_rmw(
11911191
&self,
1192-
op: rustc_codegen_utils::common::AtomicRmwBinOp,
1192+
op: rustc_codegen_ssa::common::AtomicRmwBinOp,
11931193
dst: &'ll Value,
11941194
src: &'ll Value,
1195-
order: rustc_codegen_utils::common::AtomicOrdering,
1195+
order: rustc_codegen_ssa::common::AtomicOrdering,
11961196
) -> &'ll Value {
11971197
unsafe {
11981198
llvm::LLVMBuildAtomicRMW(
@@ -1207,8 +1207,8 @@ impl BuilderMethods<'a, 'll, 'tcx>
12071207

12081208
fn atomic_fence(
12091209
&self,
1210-
order: rustc_codegen_utils::common::AtomicOrdering,
1211-
scope: rustc_codegen_utils::common::SynchronizationScope
1210+
order: rustc_codegen_ssa::common::AtomicOrdering,
1211+
scope: rustc_codegen_ssa::common::SynchronizationScope
12121212
) {
12131213
unsafe {
12141214
llvm::LLVMRustBuildAtomicFence(
@@ -1328,7 +1328,7 @@ impl BuilderMethods<'a, 'll, 'tcx>
13281328
&self,
13291329
llfn: &'ll Value,
13301330
args: &[&'ll Value],
1331-
bundle: Option<&rustc_codegen_utils::common::OperandBundleDef<'ll, &'ll Value>>
1331+
bundle: Option<&rustc_codegen_ssa::common::OperandBundleDef<'ll, &'ll Value>>
13321332
) -> &'ll Value {
13331333
self.count_insn("call");
13341334

src/librustc_codegen_llvm/common.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ use rustc::hir;
3030
use interfaces::BuilderMethods;
3131
use mir::constant::const_alloc_to_llvm;
3232
use mir::place::PlaceRef;
33-
use rustc_codegen_utils::common::TypeKind;
33+
use rustc_codegen_ssa::common::TypeKind;
3434

3535
use libc::{c_uint, c_char};
3636
use std::iter;

src/librustc_codegen_llvm/declare.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ impl DeclareMethods<'ll, 'tcx> for CodegenCx<'ll, 'tcx, &'ll Value> {
130130
let fty = FnType::new(self, sig, &[]);
131131
let llfn = declare_raw_fn(self, name, fty.llvm_cconv(), fty.llvm_type(self));
132132

133-
if self.layout_of(sig.output()).abi == layout::Abi::Uninhabited {
133+
if self.layout_of(sig.output()).abi.is_uninhabited() {
134134
llvm::Attribute::NoReturn.apply_llfn(Function, llfn);
135135
}
136136

src/librustc_codegen_llvm/glue.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
use std;
1616

17-
use rustc_codegen_utils::common::IntPredicate;
17+
use rustc_codegen_ssa::common::IntPredicate;
1818
use meth;
1919
use rustc::ty::layout::{LayoutOf, TyLayout, HasTyCtxt};
2020
use rustc::ty::{self, Ty};

src/librustc_codegen_llvm/interfaces/builder.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
use rustc_codegen_utils::common::{IntPredicate, RealPredicate, AtomicOrdering,
11+
use rustc_codegen_ssa::common::{IntPredicate, RealPredicate, AtomicOrdering,
1212
SynchronizationScope, AtomicRmwBinOp, OperandBundleDef};
1313
use libc::c_char;
1414
use rustc::ty::TyCtxt;

src/librustc_codegen_llvm/interfaces/mod.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ mod declare;
2020
mod asm;
2121

2222
pub use self::builder::{BuilderMethods, HasCodegen};
23-
pub use rustc_codegen_utils::interfaces::{Backend, BackendMethods};
23+
pub use rustc_codegen_ssa::interfaces::{Backend, BackendMethods, CodegenObject};
2424
pub use self::consts::ConstMethods;
2525
pub use self::type_::{TypeMethods, BaseTypeMethods, DerivedTypeMethods,
2626
LayoutTypeMethods, ArgTypeMethods};
@@ -31,7 +31,6 @@ pub use self::debuginfo::{DebugInfoMethods, DebugInfoBuilderMethods};
3131
pub use self::abi::{AbiMethods, AbiBuilderMethods};
3232
pub use self::declare::{DeclareMethods, PreDefineMethods};
3333
pub use self::asm::{AsmMethods, AsmBuilderMethods};
34-
pub use rustc_codegen_utils::interfaces::CodegenObject;
3534

3635
pub trait CodegenMethods<'ll, 'tcx: 'll> :
3736
Backend<'ll> + TypeMethods<'ll, 'tcx> + MiscMethods<'ll, 'tcx> + ConstMethods<'ll, 'tcx> +

0 commit comments

Comments
 (0)