diff --git a/src/librustc_codegen_llvm/abi.rs b/src/librustc_codegen_llvm/abi.rs index f59fa2f1591a1e796c437030870a1ebbdbe4bd76..5859446d32ef448e87ccaa4bdd444c997f54a2ed 100644 --- a/src/librustc_codegen_llvm/abi.rs +++ b/src/librustc_codegen_llvm/abi.rs @@ -19,7 +19,7 @@ use type_of::{LayoutLlvmExt, PointerKind}; use value::Value; -use traits::BuilderMethods; +use interfaces::BuilderMethods; use rustc_target::abi::{HasDataLayout, LayoutOf, Size, TyLayout, Abi as LayoutAbi}; use rustc::ty::{self, Ty}; diff --git a/src/librustc_codegen_llvm/asm.rs b/src/librustc_codegen_llvm/asm.rs index 6eedc6d1c2a7256c28cb4894b82c4ec4cc0985d1..5efa4d547ba782aa2c4207b6e6800a5f2b8f451b 100644 --- a/src/librustc_codegen_llvm/asm.rs +++ b/src/librustc_codegen_llvm/asm.rs @@ -16,7 +16,7 @@ use value::Value; use rustc::hir; -use traits::BuilderMethods; +use interfaces::BuilderMethods; use mir::place::PlaceRef; use mir::operand::OperandValue; diff --git a/src/librustc_codegen_llvm/base.rs b/src/librustc_codegen_llvm/base.rs index 6c60f9d0ba070fc1a080078bc67f5d17ed3a4f86..c0e4fc92139726e088e6a8c4ca54f2cd1c381de5 100644 --- a/src/librustc_codegen_llvm/base.rs +++ b/src/librustc_codegen_llvm/base.rs @@ -55,7 +55,7 @@ use callee; use common::{C_bool, C_bytes_in_context, C_usize}; use rustc_mir::monomorphize::item::DefPathBasedNames; -use common::{C_struct_in_context, C_array, val_ty}; +use common::{C_struct_in_context, C_array, val_ty, IntPredicate, RealPredicate}; use consts; use context::CodegenCx; use debuginfo; @@ -75,7 +75,7 @@ use rustc_data_structures::sync::Lrc; use rustc_data_structures::indexed_vec::Idx; -use traits::{IntPredicate, RealPredicate, BuilderMethods}; +use interfaces::BuilderMethods; use std::any::Any; use std::cmp; diff --git a/src/librustc_codegen_llvm/builder.rs b/src/librustc_codegen_llvm/builder.rs index 35d0bb9e05481cee3aac27b002d5d80187c5a327..6decc18561444de7323793b134ef3e60e32049d1 100644 --- a/src/librustc_codegen_llvm/builder.rs +++ b/src/librustc_codegen_llvm/builder.rs @@ -10,7 +10,7 @@ use llvm::{AtomicRmwBinOp, AtomicOrdering, SynchronizationScope, AsmDialect}; use llvm::{self, False, OperandBundleDef, BasicBlock}; -use common::*; +use common::{self, *}; use type_; use value::Value; use libc::{c_uint, c_char}; @@ -18,7 +18,7 @@ use rustc::ty::layout::{Align, Size}; use rustc::session::{config, Session}; use rustc_data_structures::small_c_str::SmallCStr; -use traits::{self, BuilderMethods}; +use interfaces::BuilderMethods; use syntax; use std::borrow::Cow; @@ -194,7 +194,7 @@ fn invoke(&self, args: &[&'ll Value], then: &'ll BasicBlock, catch: &'ll BasicBlock, - bundle: Option<&traits::OperandBundleDef<'ll, &'ll Value>>) -> &'ll Value { + bundle: Option<&common::OperandBundleDef<'ll, &'ll Value>>) -> &'ll Value { self.count_insn("invoke"); debug!("Invoke {:?} with args ({:?})", @@ -495,7 +495,7 @@ fn volatile_load(&self, ptr: &'ll Value) -> &'ll Value { fn atomic_load( &self, ptr: &'ll Value, - order: traits::AtomicOrdering, + order: common::AtomicOrdering, size: Size, ) -> &'ll Value { self.count_insn("load.atomic"); @@ -582,7 +582,7 @@ fn store_with_flags( } fn atomic_store(&self, val: &'ll Value, ptr: &'ll Value, - order: traits::AtomicOrdering, size: Size) { + order: common::AtomicOrdering, size: Size) { debug!("Store {:?} -> {:?}", val, ptr); self.count_insn("store.atomic"); let ptr = self.check_store(val, ptr); @@ -708,7 +708,7 @@ fn pointercast(&self, val: &'ll Value, dest_ty: Self::Type) -> &'ll Value { } /* Comparisons */ - fn icmp(&self, op: traits::IntPredicate, lhs: &'ll Value, rhs: &'ll Value) -> &'ll Value { + fn icmp(&self, op: IntPredicate, lhs: &'ll Value, rhs: &'ll Value) -> &'ll Value { self.count_insn("icmp"); let op = llvm::IntPredicate::from_generic(op); unsafe { @@ -716,7 +716,7 @@ fn icmp(&self, op: traits::IntPredicate, lhs: &'ll Value, rhs: &'ll Value) -> &' } } - fn fcmp(&self, op: traits::RealPredicate, lhs: &'ll Value, rhs: &'ll Value) -> &'ll Value { + fn fcmp(&self, op: RealPredicate, lhs: &'ll Value, rhs: &'ll Value) -> &'ll Value { self.count_insn("fcmp"); unsafe { llvm::LLVMBuildFCmp(self.llbuilder, op as c_uint, lhs, rhs, noname()) @@ -1066,8 +1066,8 @@ fn atomic_cmpxchg( dst: &'ll Value, cmp: &'ll Value, src: &'ll Value, - order: traits::AtomicOrdering, - failure_order: traits::AtomicOrdering, + order: common::AtomicOrdering, + failure_order: common::AtomicOrdering, weak: bool, ) -> &'ll Value { let weak = if weak { llvm::True } else { llvm::False }; @@ -1085,10 +1085,10 @@ fn atomic_cmpxchg( } fn atomic_rmw( &self, - op: traits::AtomicRmwBinOp, + op: common::AtomicRmwBinOp, dst: &'ll Value, src: &'ll Value, - order: traits::AtomicOrdering, + order: common::AtomicOrdering, ) -> &'ll Value { unsafe { llvm::LLVMBuildAtomicRMW( @@ -1101,7 +1101,7 @@ fn atomic_rmw( } } - fn atomic_fence(&self, order: traits::AtomicOrdering, scope: traits::SynchronizationScope) { + fn atomic_fence(&self, order: common::AtomicOrdering, scope: common::SynchronizationScope) { unsafe { llvm::LLVMRustBuildAtomicFence( self.llbuilder, @@ -1227,7 +1227,7 @@ fn call_lifetime_intrinsic(&self, intrinsic: &str, ptr: &'ll Value, size: Size) } fn call(&self, llfn: &'ll Value, args: &[&'ll Value], - bundle: Option<&traits::OperandBundleDef<'ll, &'ll Value>>) -> &'ll Value { + bundle: Option<&common::OperandBundleDef<'ll, &'ll Value>>) -> &'ll Value { self.count_insn("call"); debug!("Call {:?} with args ({:?})", diff --git a/src/librustc_codegen_llvm/common.rs b/src/librustc_codegen_llvm/common.rs index 9611c0e54b9810d0484fe173f280bd75bd623d49..88a8080819c06905fad4faa37a3604cdb6e4b737 100644 --- a/src/librustc_codegen_llvm/common.rs +++ b/src/librustc_codegen_llvm/common.rs @@ -28,7 +28,7 @@ use rustc::ty::{self, Ty, TyCtxt}; use rustc::ty::layout::{HasDataLayout, LayoutOf}; use rustc::hir; -use traits::{BuilderMethods, OperandBundleDef}; +use interfaces::BuilderMethods; use libc::{c_uint, c_char}; @@ -49,6 +49,87 @@ pub fn type_is_freeze<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, ty: Ty<'tcx>) -> bo ty.is_freeze(tcx, ty::ParamEnv::reveal_all(), DUMMY_SP) } +pub struct OperandBundleDef<'a, Value : 'a> { + pub name: &'a str, + pub val: Value +} + +impl OperandBundleDef<'ll, &'ll Value> { + pub fn new(name: &'ll str, val: &'ll Value) -> Self { + OperandBundleDef { + name, + val + } + } +} + +pub enum IntPredicate { + IntEQ, + IntNE, + IntUGT, + IntUGE, + IntULT, + IntULE, + IntSGT, + IntSGE, + IntSLT, + IntSLE +} + +#[allow(dead_code)] +pub enum RealPredicate { + RealPredicateFalse, + RealOEQ, + RealOGT, + RealOGE, + RealOLT, + RealOLE, + RealONE, + RealORD, + RealUNO, + RealUEQ, + RealUGT, + RealUGE, + RealULT, + RealULE, + RealUNE, + RealPredicateTrue +} + +pub enum AtomicRmwBinOp { + AtomicXchg, + AtomicAdd, + AtomicSub, + AtomicAnd, + AtomicNand, + AtomicOr, + AtomicXor, + AtomicMax, + AtomicMin, + AtomicUMax, + AtomicUMin +} + +pub enum AtomicOrdering { + #[allow(dead_code)] + NotAtomic, + Unordered, + Monotonic, + // Consume, // Not specified yet. + Acquire, + Release, + AcquireRelease, + SequentiallyConsistent, +} + +pub enum SynchronizationScope { + // FIXME: figure out if this variant is needed at all. + #[allow(dead_code)] + Other, + SingleThread, + CrossThread, +} + /* * A note on nomenclature of linking: "extern", "foreign", and "upcall". * diff --git a/src/librustc_codegen_llvm/debuginfo/gdb.rs b/src/librustc_codegen_llvm/debuginfo/gdb.rs index 02d3b66c613892d51f9fb7b3899dabb1b0dd40d8..c9652824ddbe29103f81b6496a5cfc062790b3bb 100644 --- a/src/librustc_codegen_llvm/debuginfo/gdb.rs +++ b/src/librustc_codegen_llvm/debuginfo/gdb.rs @@ -18,7 +18,7 @@ use rustc::session::config::DebugInfo; use type_::Type; use value::Value; -use traits::BuilderMethods; +use interfaces::BuilderMethods; use syntax::attr; diff --git a/src/librustc_codegen_llvm/debuginfo/mod.rs b/src/librustc_codegen_llvm/debuginfo/mod.rs index bce722b4b43ecca817f9f828ab613f98f345bd1a..b7f70a674916564142c38775c4614fa616720234 100644 --- a/src/librustc_codegen_llvm/debuginfo/mod.rs +++ b/src/librustc_codegen_llvm/debuginfo/mod.rs @@ -45,7 +45,7 @@ use syntax::ast; use syntax::symbol::{Symbol, InternedString}; use rustc::ty::layout::{self, LayoutOf}; -use traits::BuilderMethods; +use interfaces::BuilderMethods; pub mod gdb; mod utils; diff --git a/src/librustc_codegen_llvm/debuginfo/source_loc.rs b/src/librustc_codegen_llvm/debuginfo/source_loc.rs index bd8c165d508fcba658561898413a7796ae48515f..8785ecfa05b635283d41b7633ffcbc3150671634 100644 --- a/src/librustc_codegen_llvm/debuginfo/source_loc.rs +++ b/src/librustc_codegen_llvm/debuginfo/source_loc.rs @@ -17,7 +17,7 @@ use llvm; use llvm::debuginfo::DIScope; use builder::Builder; -use traits::BuilderMethods; +use interfaces::BuilderMethods; use libc::c_uint; use syntax_pos::{Span, Pos}; diff --git a/src/librustc_codegen_llvm/glue.rs b/src/librustc_codegen_llvm/glue.rs index 5a19fd9aa99ecd51be7124865d8e224fb84df0d7..5b6dc7f738d40ab38c17d094c1fe3fbea0a5cb36 100644 --- a/src/librustc_codegen_llvm/glue.rs +++ b/src/librustc_codegen_llvm/glue.rs @@ -20,7 +20,7 @@ use rustc::ty::layout::LayoutOf; use rustc::ty::{self, Ty}; use value::Value; -use traits::{IntPredicate,BuilderMethods}; +use interfaces::BuilderMethods; pub fn size_and_align_of_dst( bx: &Builder<'_, 'll, 'tcx>, diff --git a/src/librustc_codegen_llvm/traits.rs b/src/librustc_codegen_llvm/interfaces/builder.rs similarity index 90% rename from src/librustc_codegen_llvm/traits.rs rename to src/librustc_codegen_llvm/interfaces/builder.rs index 417c900b127aff31d347b1d044a7c6a81331a806..994ddd65d3df88051aff7c0e61b3e907a72aaa0d 100644 --- a/src/librustc_codegen_llvm/traits.rs +++ b/src/librustc_codegen_llvm/interfaces/builder.rs @@ -14,92 +14,11 @@ use rustc::ty::layout::{Align, Size}; use rustc::session::Session; use builder::MemFlags; -use value::Value; use std::borrow::Cow; use std::ops::Range; use syntax::ast::AsmDialect; -pub struct OperandBundleDef<'a, Value : 'a> { - pub name: &'a str, - pub val: Value -} - -impl OperandBundleDef<'ll, &'ll Value> { - pub fn new(name: &'ll str, val: &'ll Value) -> Self { - OperandBundleDef { - name, - val - } - } -} - -pub enum IntPredicate { - IntEQ, - IntNE, - IntUGT, - IntUGE, - IntULT, - IntULE, - IntSGT, - IntSGE, - IntSLT, - IntSLE -} - -#[allow(dead_code)] -pub enum RealPredicate { - RealPredicateFalse, - RealOEQ, - RealOGT, - RealOGE, - RealOLT, - RealOLE, - RealONE, - RealORD, - RealUNO, - RealUEQ, - RealUGT, - RealUGE, - RealULT, - RealULE, - RealUNE, - RealPredicateTrue -} - -pub enum AtomicRmwBinOp { - AtomicXchg, - AtomicAdd, - AtomicSub, - AtomicAnd, - AtomicNand, - AtomicOr, - AtomicXor, - AtomicMax, - AtomicMin, - AtomicUMax, - AtomicUMin -} - -pub enum AtomicOrdering { - #[allow(dead_code)] - NotAtomic, - Unordered, - Monotonic, - // Consume, // Not specified yet. - Acquire, - Release, - AcquireRelease, - SequentiallyConsistent, -} - -pub enum SynchronizationScope { - // FIXME: figure out if this variant is needed at all. - #[allow(dead_code)] - Other, - SingleThread, - CrossThread, -} pub trait BuilderMethods<'a, 'll :'a, 'tcx: 'll> { diff --git a/src/librustc_codegen_llvm/interfaces/mod.rs b/src/librustc_codegen_llvm/interfaces/mod.rs new file mode 100644 index 0000000000000000000000000000000000000000..d0cd8e6a696ede82510ffd85596a0116891e1372 --- /dev/null +++ b/src/librustc_codegen_llvm/interfaces/mod.rs @@ -0,0 +1,13 @@ +// Copyright 2018 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +mod builder; + +pub use self::builder::BuilderMethods; diff --git a/src/librustc_codegen_llvm/intrinsic.rs b/src/librustc_codegen_llvm/intrinsic.rs index 4eb810cf2c00c1e47c3876d90f67fb240b4829f2..f75fe0c4c0e3232c94c32c56523fd30a2a925772 100644 --- a/src/librustc_codegen_llvm/intrinsic.rs +++ b/src/librustc_codegen_llvm/intrinsic.rs @@ -31,7 +31,7 @@ use builder::Builder; use value::Value; -use traits::{BuilderMethods, AtomicRmwBinOp, SynchronizationScope}; +use interfaces::BuilderMethods; use rustc::session::Session; use syntax_pos::Span; @@ -439,7 +439,7 @@ pub fn codegen_intrinsic_call( // This requires that atomic intrinsics follow a specific naming pattern: // "atomic_[_]", and no ordering means SeqCst name if name.starts_with("atomic_") => { - use traits::AtomicOrdering::*; + use self::AtomicOrdering::*; let split: Vec<&str> = name.split('_').collect(); diff --git a/src/librustc_codegen_llvm/lib.rs b/src/librustc_codegen_llvm/lib.rs index 1baab9b0c4d476ed875e541f3301d2955c07eb9f..43942b0db85c32cef6d42d3f0460abd1078a416a 100644 --- a/src/librustc_codegen_llvm/lib.rs +++ b/src/librustc_codegen_llvm/lib.rs @@ -102,7 +102,7 @@ mod back { pub mod wasm; } -mod traits; +mod interfaces; mod abi; mod allocator; diff --git a/src/librustc_codegen_llvm/llvm/ffi.rs b/src/librustc_codegen_llvm/llvm/ffi.rs index 827948a02a7825618f590362c492786f92fad8d7..2bbb82f31968139b556c3171ecca83b57da259a2 100644 --- a/src/librustc_codegen_llvm/llvm/ffi.rs +++ b/src/librustc_codegen_llvm/llvm/ffi.rs @@ -19,7 +19,7 @@ use libc::{c_ulonglong, c_void}; use std::marker::PhantomData; -use traits; +use common; use syntax; use super::RustString; @@ -144,18 +144,18 @@ pub enum IntPredicate { } impl IntPredicate { - pub fn from_generic(intpre: traits::IntPredicate) -> Self { + pub fn from_generic(intpre: common::IntPredicate) -> Self { match intpre { - traits::IntPredicate::IntEQ => IntPredicate::IntEQ, - traits::IntPredicate::IntNE => IntPredicate::IntNE, - traits::IntPredicate::IntUGT => IntPredicate::IntUGT, - traits::IntPredicate::IntUGE => IntPredicate::IntUGE, - traits::IntPredicate::IntULT => IntPredicate::IntULT, - traits::IntPredicate::IntULE => IntPredicate::IntULE, - traits::IntPredicate::IntSGT => IntPredicate::IntSGT, - traits::IntPredicate::IntSGE => IntPredicate::IntSGE, - traits::IntPredicate::IntSLT => IntPredicate::IntSLT, - traits::IntPredicate::IntSLE => IntPredicate::IntSLE, + common::IntPredicate::IntEQ => IntPredicate::IntEQ, + common::IntPredicate::IntNE => IntPredicate::IntNE, + common::IntPredicate::IntUGT => IntPredicate::IntUGT, + common::IntPredicate::IntUGE => IntPredicate::IntUGE, + common::IntPredicate::IntULT => IntPredicate::IntULT, + common::IntPredicate::IntULE => IntPredicate::IntULE, + common::IntPredicate::IntSGT => IntPredicate::IntSGT, + common::IntPredicate::IntSGE => IntPredicate::IntSGE, + common::IntPredicate::IntSLT => IntPredicate::IntSLT, + common::IntPredicate::IntSLE => IntPredicate::IntSLE, } } } @@ -183,24 +183,24 @@ pub enum RealPredicate { } impl RealPredicate { - pub fn from_generic(realpred: traits::RealPredicate) -> Self { + pub fn from_generic(realpred: common::RealPredicate) -> Self { match realpred { - traits::RealPredicate::RealPredicateFalse => RealPredicate::RealPredicateFalse, - traits::RealPredicate::RealOEQ => RealPredicate::RealOEQ, - traits::RealPredicate::RealOGT => RealPredicate::RealOGT, - traits::RealPredicate::RealOGE => RealPredicate::RealOGE, - traits::RealPredicate::RealOLT => RealPredicate::RealOLT, - traits::RealPredicate::RealOLE => RealPredicate::RealOLE, - traits::RealPredicate::RealONE => RealPredicate::RealONE, - traits::RealPredicate::RealORD => RealPredicate::RealORD, - traits::RealPredicate::RealUNO => RealPredicate::RealUNO, - traits::RealPredicate::RealUEQ => RealPredicate::RealUEQ, - traits::RealPredicate::RealUGT => RealPredicate::RealUGT, - traits::RealPredicate::RealUGE => RealPredicate::RealUGE, - traits::RealPredicate::RealULT => RealPredicate::RealULT, - traits::RealPredicate::RealULE => RealPredicate::RealULE, - traits::RealPredicate::RealUNE => RealPredicate::RealUNE, - traits::RealPredicate::RealPredicateTrue => RealPredicate::RealPredicateTrue + common::RealPredicate::RealPredicateFalse => RealPredicate::RealPredicateFalse, + common::RealPredicate::RealOEQ => RealPredicate::RealOEQ, + common::RealPredicate::RealOGT => RealPredicate::RealOGT, + common::RealPredicate::RealOGE => RealPredicate::RealOGE, + common::RealPredicate::RealOLT => RealPredicate::RealOLT, + common::RealPredicate::RealOLE => RealPredicate::RealOLE, + common::RealPredicate::RealONE => RealPredicate::RealONE, + common::RealPredicate::RealORD => RealPredicate::RealORD, + common::RealPredicate::RealUNO => RealPredicate::RealUNO, + common::RealPredicate::RealUEQ => RealPredicate::RealUEQ, + common::RealPredicate::RealUGT => RealPredicate::RealUGT, + common::RealPredicate::RealUGE => RealPredicate::RealUGE, + common::RealPredicate::RealULT => RealPredicate::RealULT, + common::RealPredicate::RealULE => RealPredicate::RealULE, + common::RealPredicate::RealUNE => RealPredicate::RealUNE, + common::RealPredicate::RealPredicateTrue => RealPredicate::RealPredicateTrue } } } @@ -246,19 +246,19 @@ pub enum AtomicRmwBinOp { } impl AtomicRmwBinOp { - pub fn from_generic(op : traits::AtomicRmwBinOp) -> Self { + pub fn from_generic(op : common::AtomicRmwBinOp) -> Self { match op { - traits::AtomicRmwBinOp::AtomicXchg => AtomicRmwBinOp::AtomicXchg, - traits::AtomicRmwBinOp::AtomicAdd => AtomicRmwBinOp::AtomicAdd, - traits::AtomicRmwBinOp::AtomicSub => AtomicRmwBinOp::AtomicSub, - traits::AtomicRmwBinOp::AtomicAnd => AtomicRmwBinOp::AtomicAnd, - traits::AtomicRmwBinOp::AtomicNand => AtomicRmwBinOp::AtomicNand, - traits::AtomicRmwBinOp::AtomicOr => AtomicRmwBinOp::AtomicOr, - traits::AtomicRmwBinOp::AtomicXor => AtomicRmwBinOp::AtomicXor, - traits::AtomicRmwBinOp::AtomicMax => AtomicRmwBinOp::AtomicMax, - traits::AtomicRmwBinOp::AtomicMin => AtomicRmwBinOp::AtomicMin, - traits::AtomicRmwBinOp::AtomicUMax => AtomicRmwBinOp::AtomicUMax, - traits::AtomicRmwBinOp::AtomicUMin => AtomicRmwBinOp::AtomicUMin + common::AtomicRmwBinOp::AtomicXchg => AtomicRmwBinOp::AtomicXchg, + common::AtomicRmwBinOp::AtomicAdd => AtomicRmwBinOp::AtomicAdd, + common::AtomicRmwBinOp::AtomicSub => AtomicRmwBinOp::AtomicSub, + common::AtomicRmwBinOp::AtomicAnd => AtomicRmwBinOp::AtomicAnd, + common::AtomicRmwBinOp::AtomicNand => AtomicRmwBinOp::AtomicNand, + common::AtomicRmwBinOp::AtomicOr => AtomicRmwBinOp::AtomicOr, + common::AtomicRmwBinOp::AtomicXor => AtomicRmwBinOp::AtomicXor, + common::AtomicRmwBinOp::AtomicMax => AtomicRmwBinOp::AtomicMax, + common::AtomicRmwBinOp::AtomicMin => AtomicRmwBinOp::AtomicMin, + common::AtomicRmwBinOp::AtomicUMax => AtomicRmwBinOp::AtomicUMax, + common::AtomicRmwBinOp::AtomicUMin => AtomicRmwBinOp::AtomicUMin } } } @@ -279,15 +279,15 @@ pub enum AtomicOrdering { } impl AtomicOrdering { - pub fn from_generic(ao : traits::AtomicOrdering) -> Self { + pub fn from_generic(ao : common::AtomicOrdering) -> Self { match ao { - traits::AtomicOrdering::NotAtomic => AtomicOrdering::NotAtomic, - traits::AtomicOrdering::Unordered => AtomicOrdering::Unordered, - traits::AtomicOrdering::Monotonic => AtomicOrdering::Monotonic, - traits::AtomicOrdering::Acquire => AtomicOrdering::Acquire, - traits::AtomicOrdering::Release => AtomicOrdering::Release, - traits::AtomicOrdering::AcquireRelease => AtomicOrdering::AcquireRelease, - traits::AtomicOrdering::SequentiallyConsistent => + common::AtomicOrdering::NotAtomic => AtomicOrdering::NotAtomic, + common::AtomicOrdering::Unordered => AtomicOrdering::Unordered, + common::AtomicOrdering::Monotonic => AtomicOrdering::Monotonic, + common::AtomicOrdering::Acquire => AtomicOrdering::Acquire, + common::AtomicOrdering::Release => AtomicOrdering::Release, + common::AtomicOrdering::AcquireRelease => AtomicOrdering::AcquireRelease, + common::AtomicOrdering::SequentiallyConsistent => AtomicOrdering::SequentiallyConsistent } } @@ -306,11 +306,11 @@ pub enum SynchronizationScope { } impl SynchronizationScope { - pub fn from_generic(sc : traits::SynchronizationScope) -> Self { + pub fn from_generic(sc : common::SynchronizationScope) -> Self { match sc { - traits::SynchronizationScope::Other => SynchronizationScope::Other, - traits::SynchronizationScope::SingleThread => SynchronizationScope::SingleThread, - traits::SynchronizationScope::CrossThread => SynchronizationScope::CrossThread, + common::SynchronizationScope::Other => SynchronizationScope::Other, + common::SynchronizationScope::SingleThread => SynchronizationScope::SingleThread, + common::SynchronizationScope::CrossThread => SynchronizationScope::CrossThread, } } } diff --git a/src/librustc_codegen_llvm/llvm/mod.rs b/src/librustc_codegen_llvm/llvm/mod.rs index 3b5f0b0f7df28eb425bb8049f9b913feb46d8ddc..3b85690e8784c79ee780c809452c3dfecd7282d1 100644 --- a/src/librustc_codegen_llvm/llvm/mod.rs +++ b/src/librustc_codegen_llvm/llvm/mod.rs @@ -28,7 +28,7 @@ use std::cell::RefCell; use libc::{self, c_uint, c_char, size_t}; use rustc_data_structures::small_c_str::SmallCStr; -use traits; +use common; pub mod archive_ro; pub mod diagnostic; @@ -273,7 +273,7 @@ pub fn new(name: &str, vals: &[&'a Value]) -> Self { OperandBundleDef { raw: def } } - pub fn from_generic(bundle : &traits::OperandBundleDef<'a, &'a Value>) -> Self { + pub fn from_generic(bundle : &common::OperandBundleDef<'a, &'a Value>) -> Self { Self::new(bundle.name, &[bundle.val]) } } diff --git a/src/librustc_codegen_llvm/meth.rs b/src/librustc_codegen_llvm/meth.rs index e3dbbda3aa48687e4aa20f143ac512fbe3744677..46508211c5b36b29e8de219edad52063983f8be7 100644 --- a/src/librustc_codegen_llvm/meth.rs +++ b/src/librustc_codegen_llvm/meth.rs @@ -17,7 +17,7 @@ use type_::Type; use value::Value; -use traits::BuilderMethods; +use interfaces::BuilderMethods; use rustc::ty::{self, Ty}; use rustc::ty::layout::HasDataLayout; diff --git a/src/librustc_codegen_llvm/mir/block.rs b/src/librustc_codegen_llvm/mir/block.rs index 61f8c453a6f76dcb991655e7ad739858259d15ea..a95b0e9001e94287552fe8d7c284193b745a9422 100644 --- a/src/librustc_codegen_llvm/mir/block.rs +++ b/src/librustc_codegen_llvm/mir/block.rs @@ -18,7 +18,7 @@ use base; use callee; use builder::{Builder, MemFlags}; -use common::{self, C_bool, C_str_slice, C_struct, C_u32, C_uint_big, C_undef}; +use common::{self, C_bool, C_str_slice, C_struct, C_u32, C_uint_big, C_undef, IntPredicate}; use consts; use meth; use monomorphize; @@ -26,7 +26,7 @@ use type_::Type; use value::Value; -use traits::{IntPredicate,BuilderMethods}; +use interfaces::BuilderMethods; use syntax::symbol::Symbol; use syntax_pos::Pos; diff --git a/src/librustc_codegen_llvm/mir/constant.rs b/src/librustc_codegen_llvm/mir/constant.rs index 62fce894cf7a9582cc5a8f3f1f39edf7094b3824..44cd11bd79e640fc0788e10487f0ce9d7bf40302 100644 --- a/src/librustc_codegen_llvm/mir/constant.rs +++ b/src/librustc_codegen_llvm/mir/constant.rs @@ -26,7 +26,7 @@ use syntax::ast::Mutability; use syntax::source_map::Span; use value::Value; -use traits::BuilderMethods; +use interfaces::BuilderMethods; use super::super::callee; use super::FunctionCx; diff --git a/src/librustc_codegen_llvm/mir/mod.rs b/src/librustc_codegen_llvm/mir/mod.rs index b844b6e14581794a920410dcdb395dc2afac9c10..783e96d90e3f3511b2c9aaadf252c9485982a01a 100644 --- a/src/librustc_codegen_llvm/mir/mod.rs +++ b/src/librustc_codegen_llvm/mir/mod.rs @@ -26,7 +26,7 @@ use abi::{ArgTypeExt, FnType, FnTypeExt, PassMode}; use type_::Type; use value::Value; -use traits::BuilderMethods; +use interfaces::BuilderMethods; use syntax_pos::{DUMMY_SP, NO_EXPANSION, BytePos, Span}; use syntax::symbol::keywords; diff --git a/src/librustc_codegen_llvm/mir/operand.rs b/src/librustc_codegen_llvm/mir/operand.rs index b8505ba128136acb7a249c0e72f328b0df7e85ac..88b2d07edd1a8a194ea52750c5bf223913f6b4ca 100644 --- a/src/librustc_codegen_llvm/mir/operand.rs +++ b/src/librustc_codegen_llvm/mir/operand.rs @@ -21,7 +21,7 @@ use type_::Type; use glue; -use traits::BuilderMethods; +use interfaces::BuilderMethods; use std::fmt; diff --git a/src/librustc_codegen_llvm/mir/place.rs b/src/librustc_codegen_llvm/mir/place.rs index 25d24486d6328a16fd2fa042fa14b6ece39275db..cc0ed33d44d56a1678964241a5771df8eff227d8 100644 --- a/src/librustc_codegen_llvm/mir/place.rs +++ b/src/librustc_codegen_llvm/mir/place.rs @@ -15,7 +15,7 @@ use rustc::mir::tcx::PlaceTy; use base; use builder::Builder; -use common::{CodegenCx, C_undef, C_usize, C_u8, C_u32, C_uint, C_null, C_uint_big}; +use common::{CodegenCx, C_undef, C_usize, C_u8, C_u32, C_uint, C_null, C_uint_big, IntPredicate}; use consts; use type_of::LayoutLlvmExt; use type_::Type; @@ -23,7 +23,7 @@ use glue; use mir::constant::const_alloc_to_llvm; -use traits::{IntPredicate,BuilderMethods}; +use interfaces::BuilderMethods; use super::{FunctionCx, LocalRef}; use super::operand::{OperandRef, OperandValue}; diff --git a/src/librustc_codegen_llvm/mir/rvalue.rs b/src/librustc_codegen_llvm/mir/rvalue.rs index 25af25b8ed67da55f7e05b32da8b5073d3edfe56..577d73be2ed228150130a0e2d7824cb437af8689 100644 --- a/src/librustc_codegen_llvm/mir/rvalue.rs +++ b/src/librustc_codegen_llvm/mir/rvalue.rs @@ -20,14 +20,17 @@ use builder::Builder; use callee; use common::{self, val_ty}; -use common::{C_bool, C_u8, C_i32, C_u32, C_u64, C_undef, C_null, C_usize, C_uint, C_uint_big}; +use common::{ + C_bool, C_u8, C_i32, C_u32, C_u64, C_undef, C_null, C_usize, + C_uint, C_uint_big, IntPredicate, RealPredicate +}; use consts; use monomorphize; use type_::Type; use type_of::LayoutLlvmExt; use value::Value; -use traits::{IntPredicate, RealPredicate, BuilderMethods}; +use interfaces::BuilderMethods; use super::{FunctionCx, LocalRef}; use super::operand::{OperandRef, OperandValue}; diff --git a/src/librustc_codegen_llvm/mir/statement.rs b/src/librustc_codegen_llvm/mir/statement.rs index a3aea7b9180a1e81b312439054b4577bb7b64752..dc19e3c5c5b076e1f0aa9a4e996c4b4a5975b843 100644 --- a/src/librustc_codegen_llvm/mir/statement.rs +++ b/src/librustc_codegen_llvm/mir/statement.rs @@ -12,7 +12,7 @@ use asm; use builder::Builder; -use traits::BuilderMethods; +use interfaces::BuilderMethods; use super::FunctionCx; use super::LocalRef;