提交 d577ec7e 编写于 作者: D Denis Merigoux 提交者: Eduard-Mihai Burtescu

New files and folders for traits

Moved common enums to common
上级 7a2670e3
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
use type_of::{LayoutLlvmExt, PointerKind}; use type_of::{LayoutLlvmExt, PointerKind};
use value::Value; use value::Value;
use traits::BuilderMethods; use interfaces::BuilderMethods;
use rustc_target::abi::{HasDataLayout, LayoutOf, Size, TyLayout, Abi as LayoutAbi}; use rustc_target::abi::{HasDataLayout, LayoutOf, Size, TyLayout, Abi as LayoutAbi};
use rustc::ty::{self, Ty}; use rustc::ty::{self, Ty};
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
use value::Value; use value::Value;
use rustc::hir; use rustc::hir;
use traits::BuilderMethods; use interfaces::BuilderMethods;
use mir::place::PlaceRef; use mir::place::PlaceRef;
use mir::operand::OperandValue; use mir::operand::OperandValue;
......
...@@ -55,7 +55,7 @@ ...@@ -55,7 +55,7 @@
use callee; use callee;
use common::{C_bool, C_bytes_in_context, C_usize}; use common::{C_bool, C_bytes_in_context, C_usize};
use rustc_mir::monomorphize::item::DefPathBasedNames; 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 consts;
use context::CodegenCx; use context::CodegenCx;
use debuginfo; use debuginfo;
...@@ -75,7 +75,7 @@ ...@@ -75,7 +75,7 @@
use rustc_data_structures::sync::Lrc; use rustc_data_structures::sync::Lrc;
use rustc_data_structures::indexed_vec::Idx; use rustc_data_structures::indexed_vec::Idx;
use traits::{IntPredicate, RealPredicate, BuilderMethods}; use interfaces::BuilderMethods;
use std::any::Any; use std::any::Any;
use std::cmp; use std::cmp;
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
use llvm::{AtomicRmwBinOp, AtomicOrdering, SynchronizationScope, AsmDialect}; use llvm::{AtomicRmwBinOp, AtomicOrdering, SynchronizationScope, AsmDialect};
use llvm::{self, False, OperandBundleDef, BasicBlock}; use llvm::{self, False, OperandBundleDef, BasicBlock};
use common::*; use common::{self, *};
use type_; use type_;
use value::Value; use value::Value;
use libc::{c_uint, c_char}; use libc::{c_uint, c_char};
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
use rustc::ty::layout::{Align, Size}; use rustc::ty::layout::{Align, Size};
use rustc::session::{config, Session}; use rustc::session::{config, Session};
use rustc_data_structures::small_c_str::SmallCStr; use rustc_data_structures::small_c_str::SmallCStr;
use traits::{self, BuilderMethods}; use interfaces::BuilderMethods;
use syntax; use syntax;
use std::borrow::Cow; use std::borrow::Cow;
...@@ -194,7 +194,7 @@ fn invoke(&self, ...@@ -194,7 +194,7 @@ fn invoke(&self,
args: &[&'ll Value], args: &[&'ll Value],
then: &'ll BasicBlock, then: &'ll BasicBlock,
catch: &'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"); self.count_insn("invoke");
debug!("Invoke {:?} with args ({:?})", debug!("Invoke {:?} with args ({:?})",
...@@ -495,7 +495,7 @@ fn volatile_load(&self, ptr: &'ll Value) -> &'ll Value { ...@@ -495,7 +495,7 @@ fn volatile_load(&self, ptr: &'ll Value) -> &'ll Value {
fn atomic_load( fn atomic_load(
&self, &self,
ptr: &'ll Value, ptr: &'ll Value,
order: traits::AtomicOrdering, order: common::AtomicOrdering,
size: Size, size: Size,
) -> &'ll Value { ) -> &'ll Value {
self.count_insn("load.atomic"); self.count_insn("load.atomic");
...@@ -582,7 +582,7 @@ fn store_with_flags( ...@@ -582,7 +582,7 @@ fn store_with_flags(
} }
fn atomic_store(&self, val: &'ll Value, ptr: &'ll Value, fn atomic_store(&self, val: &'ll Value, ptr: &'ll Value,
order: traits::AtomicOrdering, size: Size) { order: common::AtomicOrdering, size: Size) {
debug!("Store {:?} -> {:?}", val, ptr); debug!("Store {:?} -> {:?}", val, ptr);
self.count_insn("store.atomic"); self.count_insn("store.atomic");
let ptr = self.check_store(val, ptr); let ptr = self.check_store(val, ptr);
...@@ -708,7 +708,7 @@ fn pointercast(&self, val: &'ll Value, dest_ty: Self::Type) -> &'ll Value { ...@@ -708,7 +708,7 @@ fn pointercast(&self, val: &'ll Value, dest_ty: Self::Type) -> &'ll Value {
} }
/* Comparisons */ /* 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"); self.count_insn("icmp");
let op = llvm::IntPredicate::from_generic(op); let op = llvm::IntPredicate::from_generic(op);
unsafe { unsafe {
...@@ -716,7 +716,7 @@ fn icmp(&self, op: traits::IntPredicate, lhs: &'ll Value, rhs: &'ll Value) -> &' ...@@ -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"); self.count_insn("fcmp");
unsafe { unsafe {
llvm::LLVMBuildFCmp(self.llbuilder, op as c_uint, lhs, rhs, noname()) llvm::LLVMBuildFCmp(self.llbuilder, op as c_uint, lhs, rhs, noname())
...@@ -1066,8 +1066,8 @@ fn atomic_cmpxchg( ...@@ -1066,8 +1066,8 @@ fn atomic_cmpxchg(
dst: &'ll Value, dst: &'ll Value,
cmp: &'ll Value, cmp: &'ll Value,
src: &'ll Value, src: &'ll Value,
order: traits::AtomicOrdering, order: common::AtomicOrdering,
failure_order: traits::AtomicOrdering, failure_order: common::AtomicOrdering,
weak: bool, weak: bool,
) -> &'ll Value { ) -> &'ll Value {
let weak = if weak { llvm::True } else { llvm::False }; let weak = if weak { llvm::True } else { llvm::False };
...@@ -1085,10 +1085,10 @@ fn atomic_cmpxchg( ...@@ -1085,10 +1085,10 @@ fn atomic_cmpxchg(
} }
fn atomic_rmw( fn atomic_rmw(
&self, &self,
op: traits::AtomicRmwBinOp, op: common::AtomicRmwBinOp,
dst: &'ll Value, dst: &'ll Value,
src: &'ll Value, src: &'ll Value,
order: traits::AtomicOrdering, order: common::AtomicOrdering,
) -> &'ll Value { ) -> &'ll Value {
unsafe { unsafe {
llvm::LLVMBuildAtomicRMW( llvm::LLVMBuildAtomicRMW(
...@@ -1101,7 +1101,7 @@ fn atomic_rmw( ...@@ -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 { unsafe {
llvm::LLVMRustBuildAtomicFence( llvm::LLVMRustBuildAtomicFence(
self.llbuilder, self.llbuilder,
...@@ -1227,7 +1227,7 @@ fn call_lifetime_intrinsic(&self, intrinsic: &str, ptr: &'ll Value, size: Size) ...@@ -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], 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"); self.count_insn("call");
debug!("Call {:?} with args ({:?})", debug!("Call {:?} with args ({:?})",
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
use rustc::ty::{self, Ty, TyCtxt}; use rustc::ty::{self, Ty, TyCtxt};
use rustc::ty::layout::{HasDataLayout, LayoutOf}; use rustc::ty::layout::{HasDataLayout, LayoutOf};
use rustc::hir; use rustc::hir;
use traits::{BuilderMethods, OperandBundleDef}; use interfaces::BuilderMethods;
use libc::{c_uint, c_char}; 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 ...@@ -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) 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". * A note on nomenclature of linking: "extern", "foreign", and "upcall".
* *
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
use rustc::session::config::DebugInfo; use rustc::session::config::DebugInfo;
use type_::Type; use type_::Type;
use value::Value; use value::Value;
use traits::BuilderMethods; use interfaces::BuilderMethods;
use syntax::attr; use syntax::attr;
......
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
use syntax::ast; use syntax::ast;
use syntax::symbol::{Symbol, InternedString}; use syntax::symbol::{Symbol, InternedString};
use rustc::ty::layout::{self, LayoutOf}; use rustc::ty::layout::{self, LayoutOf};
use traits::BuilderMethods; use interfaces::BuilderMethods;
pub mod gdb; pub mod gdb;
mod utils; mod utils;
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
use llvm; use llvm;
use llvm::debuginfo::DIScope; use llvm::debuginfo::DIScope;
use builder::Builder; use builder::Builder;
use traits::BuilderMethods; use interfaces::BuilderMethods;
use libc::c_uint; use libc::c_uint;
use syntax_pos::{Span, Pos}; use syntax_pos::{Span, Pos};
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
use rustc::ty::layout::LayoutOf; use rustc::ty::layout::LayoutOf;
use rustc::ty::{self, Ty}; use rustc::ty::{self, Ty};
use value::Value; use value::Value;
use traits::{IntPredicate,BuilderMethods}; use interfaces::BuilderMethods;
pub fn size_and_align_of_dst( pub fn size_and_align_of_dst(
bx: &Builder<'_, 'll, 'tcx>, bx: &Builder<'_, 'll, 'tcx>,
......
...@@ -14,92 +14,11 @@ ...@@ -14,92 +14,11 @@
use rustc::ty::layout::{Align, Size}; use rustc::ty::layout::{Align, Size};
use rustc::session::Session; use rustc::session::Session;
use builder::MemFlags; use builder::MemFlags;
use value::Value;
use std::borrow::Cow; use std::borrow::Cow;
use std::ops::Range; use std::ops::Range;
use syntax::ast::AsmDialect; 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> { pub trait BuilderMethods<'a, 'll :'a, 'tcx: 'll> {
......
// 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 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
mod builder;
pub use self::builder::BuilderMethods;
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
use builder::Builder; use builder::Builder;
use value::Value; use value::Value;
use traits::{BuilderMethods, AtomicRmwBinOp, SynchronizationScope}; use interfaces::BuilderMethods;
use rustc::session::Session; use rustc::session::Session;
use syntax_pos::Span; use syntax_pos::Span;
...@@ -439,7 +439,7 @@ pub fn codegen_intrinsic_call( ...@@ -439,7 +439,7 @@ pub fn codegen_intrinsic_call(
// This requires that atomic intrinsics follow a specific naming pattern: // This requires that atomic intrinsics follow a specific naming pattern:
// "atomic_<operation>[_<ordering>]", and no ordering means SeqCst // "atomic_<operation>[_<ordering>]", and no ordering means SeqCst
name if name.starts_with("atomic_") => { name if name.starts_with("atomic_") => {
use traits::AtomicOrdering::*; use self::AtomicOrdering::*;
let split: Vec<&str> = name.split('_').collect(); let split: Vec<&str> = name.split('_').collect();
......
...@@ -102,7 +102,7 @@ mod back { ...@@ -102,7 +102,7 @@ mod back {
pub mod wasm; pub mod wasm;
} }
mod traits; mod interfaces;
mod abi; mod abi;
mod allocator; mod allocator;
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
use libc::{c_ulonglong, c_void}; use libc::{c_ulonglong, c_void};
use std::marker::PhantomData; use std::marker::PhantomData;
use traits; use common;
use syntax; use syntax;
use super::RustString; use super::RustString;
...@@ -144,18 +144,18 @@ pub enum IntPredicate { ...@@ -144,18 +144,18 @@ pub enum IntPredicate {
} }
impl IntPredicate { impl IntPredicate {
pub fn from_generic(intpre: traits::IntPredicate) -> Self { pub fn from_generic(intpre: common::IntPredicate) -> Self {
match intpre { match intpre {
traits::IntPredicate::IntEQ => IntPredicate::IntEQ, common::IntPredicate::IntEQ => IntPredicate::IntEQ,
traits::IntPredicate::IntNE => IntPredicate::IntNE, common::IntPredicate::IntNE => IntPredicate::IntNE,
traits::IntPredicate::IntUGT => IntPredicate::IntUGT, common::IntPredicate::IntUGT => IntPredicate::IntUGT,
traits::IntPredicate::IntUGE => IntPredicate::IntUGE, common::IntPredicate::IntUGE => IntPredicate::IntUGE,
traits::IntPredicate::IntULT => IntPredicate::IntULT, common::IntPredicate::IntULT => IntPredicate::IntULT,
traits::IntPredicate::IntULE => IntPredicate::IntULE, common::IntPredicate::IntULE => IntPredicate::IntULE,
traits::IntPredicate::IntSGT => IntPredicate::IntSGT, common::IntPredicate::IntSGT => IntPredicate::IntSGT,
traits::IntPredicate::IntSGE => IntPredicate::IntSGE, common::IntPredicate::IntSGE => IntPredicate::IntSGE,
traits::IntPredicate::IntSLT => IntPredicate::IntSLT, common::IntPredicate::IntSLT => IntPredicate::IntSLT,
traits::IntPredicate::IntSLE => IntPredicate::IntSLE, common::IntPredicate::IntSLE => IntPredicate::IntSLE,
} }
} }
} }
...@@ -183,24 +183,24 @@ pub enum RealPredicate { ...@@ -183,24 +183,24 @@ pub enum RealPredicate {
} }
impl RealPredicate { impl RealPredicate {
pub fn from_generic(realpred: traits::RealPredicate) -> Self { pub fn from_generic(realpred: common::RealPredicate) -> Self {
match realpred { match realpred {
traits::RealPredicate::RealPredicateFalse => RealPredicate::RealPredicateFalse, common::RealPredicate::RealPredicateFalse => RealPredicate::RealPredicateFalse,
traits::RealPredicate::RealOEQ => RealPredicate::RealOEQ, common::RealPredicate::RealOEQ => RealPredicate::RealOEQ,
traits::RealPredicate::RealOGT => RealPredicate::RealOGT, common::RealPredicate::RealOGT => RealPredicate::RealOGT,
traits::RealPredicate::RealOGE => RealPredicate::RealOGE, common::RealPredicate::RealOGE => RealPredicate::RealOGE,
traits::RealPredicate::RealOLT => RealPredicate::RealOLT, common::RealPredicate::RealOLT => RealPredicate::RealOLT,
traits::RealPredicate::RealOLE => RealPredicate::RealOLE, common::RealPredicate::RealOLE => RealPredicate::RealOLE,
traits::RealPredicate::RealONE => RealPredicate::RealONE, common::RealPredicate::RealONE => RealPredicate::RealONE,
traits::RealPredicate::RealORD => RealPredicate::RealORD, common::RealPredicate::RealORD => RealPredicate::RealORD,
traits::RealPredicate::RealUNO => RealPredicate::RealUNO, common::RealPredicate::RealUNO => RealPredicate::RealUNO,
traits::RealPredicate::RealUEQ => RealPredicate::RealUEQ, common::RealPredicate::RealUEQ => RealPredicate::RealUEQ,
traits::RealPredicate::RealUGT => RealPredicate::RealUGT, common::RealPredicate::RealUGT => RealPredicate::RealUGT,
traits::RealPredicate::RealUGE => RealPredicate::RealUGE, common::RealPredicate::RealUGE => RealPredicate::RealUGE,
traits::RealPredicate::RealULT => RealPredicate::RealULT, common::RealPredicate::RealULT => RealPredicate::RealULT,
traits::RealPredicate::RealULE => RealPredicate::RealULE, common::RealPredicate::RealULE => RealPredicate::RealULE,
traits::RealPredicate::RealUNE => RealPredicate::RealUNE, common::RealPredicate::RealUNE => RealPredicate::RealUNE,
traits::RealPredicate::RealPredicateTrue => RealPredicate::RealPredicateTrue common::RealPredicate::RealPredicateTrue => RealPredicate::RealPredicateTrue
} }
} }
} }
...@@ -246,19 +246,19 @@ pub enum AtomicRmwBinOp { ...@@ -246,19 +246,19 @@ pub enum AtomicRmwBinOp {
} }
impl AtomicRmwBinOp { impl AtomicRmwBinOp {
pub fn from_generic(op : traits::AtomicRmwBinOp) -> Self { pub fn from_generic(op : common::AtomicRmwBinOp) -> Self {
match op { match op {
traits::AtomicRmwBinOp::AtomicXchg => AtomicRmwBinOp::AtomicXchg, common::AtomicRmwBinOp::AtomicXchg => AtomicRmwBinOp::AtomicXchg,
traits::AtomicRmwBinOp::AtomicAdd => AtomicRmwBinOp::AtomicAdd, common::AtomicRmwBinOp::AtomicAdd => AtomicRmwBinOp::AtomicAdd,
traits::AtomicRmwBinOp::AtomicSub => AtomicRmwBinOp::AtomicSub, common::AtomicRmwBinOp::AtomicSub => AtomicRmwBinOp::AtomicSub,
traits::AtomicRmwBinOp::AtomicAnd => AtomicRmwBinOp::AtomicAnd, common::AtomicRmwBinOp::AtomicAnd => AtomicRmwBinOp::AtomicAnd,
traits::AtomicRmwBinOp::AtomicNand => AtomicRmwBinOp::AtomicNand, common::AtomicRmwBinOp::AtomicNand => AtomicRmwBinOp::AtomicNand,
traits::AtomicRmwBinOp::AtomicOr => AtomicRmwBinOp::AtomicOr, common::AtomicRmwBinOp::AtomicOr => AtomicRmwBinOp::AtomicOr,
traits::AtomicRmwBinOp::AtomicXor => AtomicRmwBinOp::AtomicXor, common::AtomicRmwBinOp::AtomicXor => AtomicRmwBinOp::AtomicXor,
traits::AtomicRmwBinOp::AtomicMax => AtomicRmwBinOp::AtomicMax, common::AtomicRmwBinOp::AtomicMax => AtomicRmwBinOp::AtomicMax,
traits::AtomicRmwBinOp::AtomicMin => AtomicRmwBinOp::AtomicMin, common::AtomicRmwBinOp::AtomicMin => AtomicRmwBinOp::AtomicMin,
traits::AtomicRmwBinOp::AtomicUMax => AtomicRmwBinOp::AtomicUMax, common::AtomicRmwBinOp::AtomicUMax => AtomicRmwBinOp::AtomicUMax,
traits::AtomicRmwBinOp::AtomicUMin => AtomicRmwBinOp::AtomicUMin common::AtomicRmwBinOp::AtomicUMin => AtomicRmwBinOp::AtomicUMin
} }
} }
} }
...@@ -279,15 +279,15 @@ pub enum AtomicOrdering { ...@@ -279,15 +279,15 @@ pub enum AtomicOrdering {
} }
impl AtomicOrdering { impl AtomicOrdering {
pub fn from_generic(ao : traits::AtomicOrdering) -> Self { pub fn from_generic(ao : common::AtomicOrdering) -> Self {
match ao { match ao {
traits::AtomicOrdering::NotAtomic => AtomicOrdering::NotAtomic, common::AtomicOrdering::NotAtomic => AtomicOrdering::NotAtomic,
traits::AtomicOrdering::Unordered => AtomicOrdering::Unordered, common::AtomicOrdering::Unordered => AtomicOrdering::Unordered,
traits::AtomicOrdering::Monotonic => AtomicOrdering::Monotonic, common::AtomicOrdering::Monotonic => AtomicOrdering::Monotonic,
traits::AtomicOrdering::Acquire => AtomicOrdering::Acquire, common::AtomicOrdering::Acquire => AtomicOrdering::Acquire,
traits::AtomicOrdering::Release => AtomicOrdering::Release, common::AtomicOrdering::Release => AtomicOrdering::Release,
traits::AtomicOrdering::AcquireRelease => AtomicOrdering::AcquireRelease, common::AtomicOrdering::AcquireRelease => AtomicOrdering::AcquireRelease,
traits::AtomicOrdering::SequentiallyConsistent => common::AtomicOrdering::SequentiallyConsistent =>
AtomicOrdering::SequentiallyConsistent AtomicOrdering::SequentiallyConsistent
} }
} }
...@@ -306,11 +306,11 @@ pub enum SynchronizationScope { ...@@ -306,11 +306,11 @@ pub enum SynchronizationScope {
} }
impl SynchronizationScope { impl SynchronizationScope {
pub fn from_generic(sc : traits::SynchronizationScope) -> Self { pub fn from_generic(sc : common::SynchronizationScope) -> Self {
match sc { match sc {
traits::SynchronizationScope::Other => SynchronizationScope::Other, common::SynchronizationScope::Other => SynchronizationScope::Other,
traits::SynchronizationScope::SingleThread => SynchronizationScope::SingleThread, common::SynchronizationScope::SingleThread => SynchronizationScope::SingleThread,
traits::SynchronizationScope::CrossThread => SynchronizationScope::CrossThread, common::SynchronizationScope::CrossThread => SynchronizationScope::CrossThread,
} }
} }
} }
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
use std::cell::RefCell; use std::cell::RefCell;
use libc::{self, c_uint, c_char, size_t}; use libc::{self, c_uint, c_char, size_t};
use rustc_data_structures::small_c_str::SmallCStr; use rustc_data_structures::small_c_str::SmallCStr;
use traits; use common;
pub mod archive_ro; pub mod archive_ro;
pub mod diagnostic; pub mod diagnostic;
...@@ -273,7 +273,7 @@ pub fn new(name: &str, vals: &[&'a Value]) -> Self { ...@@ -273,7 +273,7 @@ pub fn new(name: &str, vals: &[&'a Value]) -> Self {
OperandBundleDef { raw: def } 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]) Self::new(bundle.name, &[bundle.val])
} }
} }
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
use type_::Type; use type_::Type;
use value::Value; use value::Value;
use traits::BuilderMethods; use interfaces::BuilderMethods;
use rustc::ty::{self, Ty}; use rustc::ty::{self, Ty};
use rustc::ty::layout::HasDataLayout; use rustc::ty::layout::HasDataLayout;
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
use base; use base;
use callee; use callee;
use builder::{Builder, MemFlags}; 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 consts;
use meth; use meth;
use monomorphize; use monomorphize;
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
use type_::Type; use type_::Type;
use value::Value; use value::Value;
use traits::{IntPredicate,BuilderMethods}; use interfaces::BuilderMethods;
use syntax::symbol::Symbol; use syntax::symbol::Symbol;
use syntax_pos::Pos; use syntax_pos::Pos;
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
use syntax::ast::Mutability; use syntax::ast::Mutability;
use syntax::source_map::Span; use syntax::source_map::Span;
use value::Value; use value::Value;
use traits::BuilderMethods; use interfaces::BuilderMethods;
use super::super::callee; use super::super::callee;
use super::FunctionCx; use super::FunctionCx;
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
use abi::{ArgTypeExt, FnType, FnTypeExt, PassMode}; use abi::{ArgTypeExt, FnType, FnTypeExt, PassMode};
use type_::Type; use type_::Type;
use value::Value; use value::Value;
use traits::BuilderMethods; use interfaces::BuilderMethods;
use syntax_pos::{DUMMY_SP, NO_EXPANSION, BytePos, Span}; use syntax_pos::{DUMMY_SP, NO_EXPANSION, BytePos, Span};
use syntax::symbol::keywords; use syntax::symbol::keywords;
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
use type_::Type; use type_::Type;
use glue; use glue;
use traits::BuilderMethods; use interfaces::BuilderMethods;
use std::fmt; use std::fmt;
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
use rustc::mir::tcx::PlaceTy; use rustc::mir::tcx::PlaceTy;
use base; use base;
use builder::Builder; 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 consts;
use type_of::LayoutLlvmExt; use type_of::LayoutLlvmExt;
use type_::Type; use type_::Type;
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
use glue; use glue;
use mir::constant::const_alloc_to_llvm; use mir::constant::const_alloc_to_llvm;
use traits::{IntPredicate,BuilderMethods}; use interfaces::BuilderMethods;
use super::{FunctionCx, LocalRef}; use super::{FunctionCx, LocalRef};
use super::operand::{OperandRef, OperandValue}; use super::operand::{OperandRef, OperandValue};
......
...@@ -20,14 +20,17 @@ ...@@ -20,14 +20,17 @@
use builder::Builder; use builder::Builder;
use callee; use callee;
use common::{self, val_ty}; 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 consts;
use monomorphize; use monomorphize;
use type_::Type; use type_::Type;
use type_of::LayoutLlvmExt; use type_of::LayoutLlvmExt;
use value::Value; use value::Value;
use traits::{IntPredicate, RealPredicate, BuilderMethods}; use interfaces::BuilderMethods;
use super::{FunctionCx, LocalRef}; use super::{FunctionCx, LocalRef};
use super::operand::{OperandRef, OperandValue}; use super::operand::{OperandRef, OperandValue};
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
use asm; use asm;
use builder::Builder; use builder::Builder;
use traits::BuilderMethods; use interfaces::BuilderMethods;
use super::FunctionCx; use super::FunctionCx;
use super::LocalRef; use super::LocalRef;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册