diff --git a/src/librustc_mir/Cargo.toml b/src/librustc_mir/Cargo.toml index 40ea4e1801b..a54f15532b1 100644 --- a/src/librustc_mir/Cargo.toml +++ b/src/librustc_mir/Cargo.toml @@ -23,3 +23,4 @@ syntax = { path = "../libsyntax" } syntax_pos = { path = "../libsyntax_pos" } byteorder = { version = "1.1", features = ["i128"] } rustc_apfloat = { path = "../librustc_apfloat" } +rustc_trans_utils = { path = "../librustc_trans_utils" } diff --git a/src/librustc_mir/lib.rs b/src/librustc_mir/lib.rs index e7dd94f75e5..4d26230e061 100644 --- a/src/librustc_mir/lib.rs +++ b/src/librustc_mir/lib.rs @@ -54,6 +54,7 @@ extern crate core; // for NonZero extern crate log_settings; extern crate rustc_apfloat; extern crate byteorder; +extern crate rustc_trans_utils; mod diagnostics; @@ -65,6 +66,7 @@ mod shim; pub mod transform; pub mod util; pub mod interpret; +pub mod monomorphize; use rustc::ty::maps::Providers; diff --git a/src/librustc_trans_utils/collector.rs b/src/librustc_mir/monomorphize/collector.rs similarity index 99% rename from src/librustc_trans_utils/collector.rs rename to src/librustc_mir/monomorphize/collector.rs index 56b1a0238a1..498ddf9c85c 100644 --- a/src/librustc_trans_utils/collector.rs +++ b/src/librustc_mir/monomorphize/collector.rs @@ -207,7 +207,7 @@ use common::{def_ty, instance_ty, type_has_metadata}; use monomorphize::{self, Instance}; use rustc::util::nodemap::{FxHashSet, FxHashMap, DefIdMap}; -use trans_item::{TransItemExt, DefPathBasedNames, InstantiationMode}; +use rustc_trans_utils::trans_item::{TransItemExt, DefPathBasedNames, InstantiationMode}; use rustc_data_structures::bitvec::BitVector; diff --git a/src/librustc_mir/monomorphize/common.rs b/src/librustc_mir/monomorphize/common.rs new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/librustc_mir/monomorphize/mod.rs b/src/librustc_mir/monomorphize/mod.rs new file mode 100644 index 00000000000..e0247862ec2 --- /dev/null +++ b/src/librustc_mir/monomorphize/mod.rs @@ -0,0 +1 @@ +pub mod collector; diff --git a/src/librustc_trans/Cargo.toml b/src/librustc_trans/Cargo.toml index 131cf59a571..f1549d98421 100644 --- a/src/librustc_trans/Cargo.toml +++ b/src/librustc_trans/Cargo.toml @@ -28,6 +28,7 @@ rustc_incremental = { path = "../librustc_incremental" } rustc_llvm = { path = "../librustc_llvm" } rustc_platform_intrinsics = { path = "../librustc_platform_intrinsics" } rustc_trans_utils = { path = "../librustc_trans_utils" } +rustc_mir = { path = "../librustc_mir" } serialize = { path = "../libserialize" } syntax = { path = "../libsyntax" } syntax_pos = { path = "../libsyntax_pos" } diff --git a/src/librustc_trans/base.rs b/src/librustc_trans/base.rs index 911ec561887..d28f0c5bd84 100644 --- a/src/librustc_trans/base.rs +++ b/src/librustc_trans/base.rs @@ -55,7 +55,7 @@ use attributes; use builder::Builder; use callee; use common::{C_bool, C_bytes_in_context, C_i32, C_usize}; -use collector::{self, TransItemCollectionMode}; +use rustc_mir::monomorphize::collector::{self, TransItemCollectionMode}; use common::{self, C_struct_in_context, C_array, CrateContext, val_ty}; use consts; use context::{self, LocalCrateContext, SharedCrateContext}; diff --git a/src/librustc_trans/lib.rs b/src/librustc_trans/lib.rs index f6cc1215699..7f2b875394c 100644 --- a/src/librustc_trans/lib.rs +++ b/src/librustc_trans/lib.rs @@ -43,6 +43,7 @@ extern crate libc; #[macro_use] extern crate rustc; extern crate jobserver; extern crate num_cpus; +extern crate rustc_mir; extern crate rustc_allocator; extern crate rustc_apfloat; extern crate rustc_back; @@ -84,7 +85,6 @@ use rustc::session::config::{OutputFilenames, OutputType}; use rustc::ty::{self, TyCtxt}; use rustc::util::nodemap::{FxHashSet, FxHashMap}; -use rustc_trans_utils::collector; use rustc_trans_utils::monomorphize; mod diagnostics; diff --git a/src/librustc_trans/partitioning.rs b/src/librustc_trans/partitioning.rs index 03c0f13e2f5..05297761ef1 100644 --- a/src/librustc_trans/partitioning.rs +++ b/src/librustc_trans/partitioning.rs @@ -102,7 +102,7 @@ //! source-level module, functions from the same module will be available for //! inlining, even when they are not marked #[inline]. -use collector::InliningMap; +use rustc_mir::monomorphize::collector::InliningMap; use common; use rustc::dep_graph::WorkProductId; use rustc::hir::def_id::DefId; diff --git a/src/librustc_trans_utils/lib.rs b/src/librustc_trans_utils/lib.rs index 3a42462e41e..4ee6602dfe6 100644 --- a/src/librustc_trans_utils/lib.rs +++ b/src/librustc_trans_utils/lib.rs @@ -35,7 +35,6 @@ extern crate log; #[macro_use] extern crate rustc; extern crate rustc_back; -extern crate rustc_data_structures; extern crate syntax; extern crate syntax_pos; @@ -47,7 +46,6 @@ use rustc::util::nodemap::NodeSet; pub mod common; pub mod link; -pub mod collector; pub mod trans_item; pub mod monomorphize; pub mod trans_crate;