Skip to content

Commit bbe1d28

Browse files
Move the core MIR datastructures to librustc.
This is done mostly so that we can refer to MIR types in csearch and other metadata related area.
1 parent 52d95e6 commit bbe1d28

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+70
-61
lines changed

src/librustc/lib.rs

+5
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,11 @@ pub mod middle {
136136
pub mod weak_lang_items;
137137
}
138138

139+
pub mod mir {
140+
pub mod repr;
141+
pub mod tcx;
142+
}
143+
139144
pub mod session;
140145

141146
pub mod lint;

src/librustc_mir/repr.rs renamed to src/librustc/mir/repr.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
use rustc::middle::const_eval::ConstVal;
12-
use rustc::middle::def_id::DefId;
13-
use rustc::middle::subst::Substs;
14-
use rustc::middle::ty::{AdtDef, ClosureSubsts, FnOutput, Region, Ty};
11+
use middle::const_eval::ConstVal;
12+
use middle::def_id::DefId;
13+
use middle::subst::Substs;
14+
use middle::ty::{AdtDef, ClosureSubsts, FnOutput, Region, Ty};
1515
use rustc_back::slice;
1616
use rustc_front::hir::InlineAsm;
1717
use syntax::ast::Name;

src/librustc_mir/tcx/mod.rs renamed to src/librustc/mir/tcx.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@
1313
* building is complete.
1414
*/
1515

16-
use repr::*;
17-
use rustc::middle::subst::Substs;
18-
use rustc::middle::ty::{self, AdtDef, Ty};
16+
use mir::repr::*;
17+
use middle::subst::Substs;
18+
use middle::ty::{self, AdtDef, Ty};
1919
use rustc_front::hir;
2020

2121
#[derive(Copy, Clone, Debug)]

src/librustc_mir/build/block.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
use build::{BlockAnd, Builder};
1212
use hair::*;
13-
use repr::*;
13+
use rustc::mir::repr::*;
1414
use rustc_front::hir;
1515

1616
impl<'a,'tcx> Builder<'a,'tcx> {

src/librustc_mir/build/cfg.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
//! Routines for manipulating the control-flow graph.
1515
1616
use build::CFG;
17-
use repr::*;
17+
use rustc::mir::repr::*;
1818
use syntax::codemap::Span;
1919

2020
impl<'tcx> CFG<'tcx> {

src/librustc_mir/build/expr/as_constant.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
1313
use build::Builder;
1414
use hair::*;
15-
use repr::*;
15+
use rustc::mir::repr::*;
1616

1717
impl<'a,'tcx> Builder<'a,'tcx> {
1818
/// Compile `expr`, yielding a compile-time constant. Assumes that

src/librustc_mir/build/expr/as_lvalue.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010

1111
//! See docs in build/expr/mod.rs
1212
13-
use build::{BlockAnd, Builder};
13+
use build::{BlockAnd, BlockAndExtension, Builder};
1414
use build::expr::category::Category;
1515
use hair::*;
16-
use repr::*;
16+
use rustc::mir::repr::*;
1717

1818
impl<'a,'tcx> Builder<'a,'tcx> {
1919
/// Compile `expr`, yielding an lvalue that we can move from etc.

src/librustc_mir/build/expr/as_operand.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010

1111
//! See docs in build/expr/mod.rs
1212
13-
use build::{BlockAnd, Builder};
13+
use build::{BlockAnd, BlockAndExtension, Builder};
1414
use build::expr::category::Category;
1515
use hair::*;
16-
use repr::*;
16+
use rustc::mir::repr::*;
1717

1818
impl<'a,'tcx> Builder<'a,'tcx> {
1919
/// Compile `expr` into a value that can be used as an operand.

src/librustc_mir/build/expr/as_rvalue.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@
1212
1313
use rustc_data_structures::fnv::FnvHashMap;
1414

15-
use build::{BlockAnd, Builder};
15+
use build::{BlockAnd, BlockAndExtension, Builder};
1616
use build::expr::category::{Category, RvalueFunc};
1717
use hair::*;
18-
use repr::*;
18+
use rustc::mir::repr::*;
1919

2020
impl<'a,'tcx> Builder<'a,'tcx> {
2121
/// Compile `expr`, yielding an rvalue.

src/librustc_mir/build/expr/as_temp.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010

1111
//! See docs in build/expr/mod.rs
1212
13-
use build::{BlockAnd, Builder};
13+
use build::{BlockAnd, BlockAndExtension, Builder};
1414
use build::expr::category::Category;
1515
use hair::*;
16-
use repr::*;
16+
use rustc::mir::repr::*;
1717

1818
impl<'a,'tcx> Builder<'a,'tcx> {
1919
/// Compile `expr` into a fresh temporary. This is used when building

src/librustc_mir/build/expr/into.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@
1010

1111
//! See docs in build/expr/mod.rs
1212
13-
use build::{BlockAnd, Builder};
13+
use build::{BlockAnd, BlockAndExtension, Builder};
1414
use build::expr::category::{Category, RvalueFunc};
1515
use build::scope::LoopScope;
1616
use hair::*;
17-
use repr::*;
1817
use rustc::middle::region::CodeExtent;
18+
use rustc::mir::repr::*;
1919
use syntax::codemap::Span;
2020

2121
impl<'a,'tcx> Builder<'a,'tcx> {

src/librustc_mir/build/into.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414
//! wrapped up as expressions (e.g. blocks). To make this ergonomic, we use this
1515
//! latter `EvalInto` trait.
1616
17-
use build::{BlockAnd, Builder};
17+
use build::{BlockAnd, BlockAndExtension, Builder};
1818
use hair::*;
19-
use repr::*;
19+
use rustc::mir::repr::*;
2020

2121
pub trait EvalInto<'tcx> {
2222
fn eval_into<'a>(self,

src/librustc_mir/build/matches/mod.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@
1313
//! includes the high-level algorithm, the submodules contain the
1414
//! details.
1515
16-
use build::{BlockAnd, Builder};
17-
use repr::*;
16+
use build::{BlockAnd, BlockAndExtension, Builder};
1817
use rustc_data_structures::fnv::FnvHashMap;
1918
use rustc::middle::const_eval::ConstVal;
2019
use rustc::middle::region::CodeExtent;
2120
use rustc::middle::ty::{AdtDef, Ty};
21+
use rustc::mir::repr::*;
2222
use hair::*;
2323
use syntax::ast::{Name, NodeId};
2424
use syntax::codemap::Span;

src/librustc_mir/build/matches/simplify.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@
2222
//! sort of test: for example, testing which variant an enum is, or
2323
//! testing a value against a constant.
2424
25-
use build::{BlockAnd, Builder};
25+
use build::{BlockAnd, BlockAndExtension, Builder};
2626
use build::matches::{Binding, MatchPair, Candidate};
2727
use hair::*;
28-
use repr::*;
28+
use rustc::mir::repr::*;
2929

3030
use std::mem;
3131

src/librustc_mir/build/matches/test.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@
1818
use build::Builder;
1919
use build::matches::{Candidate, MatchPair, Test, TestKind};
2020
use hair::*;
21-
use repr::*;
2221
use rustc_data_structures::fnv::FnvHashMap;
2322
use rustc::middle::const_eval::ConstVal;
2423
use rustc::middle::ty::{self, Ty};
24+
use rustc::mir::repr::*;
2525
use syntax::codemap::Span;
2626

2727
impl<'a,'tcx> Builder<'a,'tcx> {

src/librustc_mir/build/matches/util.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
use build::{BlockAnd, Builder};
11+
use build::{BlockAnd, BlockAndExtension, Builder};
1212
use build::matches::MatchPair;
1313
use hair::*;
14-
use repr::*;
14+
use rustc::mir::repr::*;
1515
use std::u32;
1616

1717
impl<'a,'tcx> Builder<'a,'tcx> {

src/librustc_mir/build/misc.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
1414
use build::Builder;
1515
use hair::*;
16-
use repr::*;
1716
use rustc::middle::ty::Ty;
17+
use rustc::mir::repr::*;
1818
use std::u32;
1919
use syntax::codemap::Span;
2020

src/librustc_mir/build/mod.rs

+8-2
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,10 @@
1111
use hair::cx::Cx;
1212
use rustc::middle::region::CodeExtent;
1313
use rustc::middle::ty::{FnOutput, Ty};
14+
use rustc::mir::repr::*;
1415
use rustc_data_structures::fnv::FnvHashMap;
1516
use rustc_front::hir;
16-
use repr::*;
17+
1718
use syntax::ast;
1819
use syntax::codemap::Span;
1920

@@ -41,7 +42,12 @@ struct CFG<'tcx> {
4142
#[must_use] // if you don't use one of these results, you're leaving a dangling edge
4243
struct BlockAnd<T>(BasicBlock, T);
4344

44-
impl BasicBlock {
45+
trait BlockAndExtension {
46+
fn and<T>(self, v: T) -> BlockAnd<T>;
47+
fn unit(self) -> BlockAnd<()>;
48+
}
49+
50+
impl BlockAndExtension for BasicBlock {
4551
fn and<T>(self, v: T) -> BlockAnd<T> {
4652
BlockAnd(self, v)
4753
}

src/librustc_mir/build/scope.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,10 @@ should go to.
8686
8787
*/
8888

89-
use build::{BlockAnd, Builder, CFG};
90-
use repr::*;
89+
use build::{BlockAnd, BlockAndExtension, Builder, CFG};
9190
use rustc::middle::region::CodeExtent;
9291
use rustc::middle::ty::Ty;
92+
use rustc::mir::repr::*;
9393
use syntax::codemap::Span;
9494

9595
pub struct Scope<'tcx> {

src/librustc_mir/build/stmt.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
use build::{BlockAnd, Builder};
11+
use build::{BlockAnd, BlockAndExtension, Builder};
1212
use hair::*;
13-
use repr::*;
13+
use rustc::mir::repr::*;
1414

1515
impl<'a,'tcx> Builder<'a,'tcx> {
1616
pub fn stmts(&mut self, mut block: BasicBlock, stmts: Vec<StmtRef<'tcx>>) -> BlockAnd<()> {

src/librustc_mir/graphviz/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
// except according to those terms.
1010

1111
use dot;
12-
use repr::*;
12+
use rustc::mir::repr::*;
1313
use std::borrow::IntoCow;
1414

1515
#[derive(Copy, Clone, PartialEq, Eq)]

src/librustc_mir/hair/cx/expr.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
// except according to those terms.
1010

1111
use hair::*;
12-
use repr::*;
1312
use rustc_data_structures::fnv::FnvHashMap;
1413
use hair::cx::Cx;
1514
use hair::cx::block;
@@ -19,6 +18,7 @@ use rustc::middle::def;
1918
use rustc::middle::region::CodeExtent;
2019
use rustc::middle::pat_util;
2120
use rustc::middle::ty::{self, VariantDef, Ty};
21+
use rustc::mir::repr::*;
2222
use rustc_front::hir;
2323
use rustc_front::util as hir_util;
2424
use syntax::ext::mtwt;

src/librustc_mir/hair/cx/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
*/
1717

1818
use hair::*;
19-
use repr::*;
19+
use rustc::mir::repr::*;
2020

2121
use rustc::middle::const_eval::{self, ConstVal};
2222
use rustc::middle::def_id::DefId;

src/librustc_mir/hair/cx/pattern.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@
1010

1111
use hair::*;
1212
use hair::cx::Cx;
13-
use repr::*;
1413
use rustc_data_structures::fnv::FnvHashMap;
1514
use rustc::middle::const_eval;
1615
use rustc::middle::def;
1716
use rustc::middle::pat_util::{pat_is_resolved_const, pat_is_binding};
1817
use rustc::middle::subst::Substs;
1918
use rustc::middle::ty::{self, Ty};
19+
use rustc::mir::repr::*;
2020
use rustc_front::hir;
2121
use syntax::ast;
2222
use syntax::ext::mtwt;

src/librustc_mir/hair/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
//! unit-tested and separated from the Rust source and compiler data
1515
//! structures.
1616
17-
use repr::{BinOp, BorrowKind, Field, Literal, Mutability, UnOp};
17+
use rustc::mir::repr::{BinOp, BorrowKind, Field, Literal, Mutability, UnOp};
1818
use rustc::middle::def_id::DefId;
1919
use rustc::middle::region::CodeExtent;
2020
use rustc::middle::subst::Substs;

src/librustc_mir/lib.rs

-2
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,7 @@ extern crate syntax;
3232
pub mod build;
3333
pub mod mir_map;
3434
mod hair;
35-
pub mod repr;
3635
mod graphviz;
3736
pub mod transform;
38-
pub mod tcx;
3937
pub mod visit;
4038

src/librustc_mir/mir_map.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ extern crate rustc_front;
2323
use build;
2424
use dot;
2525
use transform::*;
26-
use repr::Mir;
26+
use rustc::mir::repr::Mir;
2727
use hair::cx::Cx;
2828
use std::fs::File;
2929

src/librustc_mir/transform/erase_regions.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
//! We want to do this once just before trans, so trans does not have to take
1313
//! care erasing regions all over the place.
1414
15-
use repr::*;
1615
use rustc::middle::ty;
16+
use rustc::mir::repr::*;
1717
use transform::MirPass;
1818
use mir_map::MirMap;
1919

src/librustc_mir/transform/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ pub mod simplify_cfg;
1212
pub mod erase_regions;
1313
mod util;
1414

15-
use repr::Mir;
15+
use rustc::mir::repr::Mir;
1616

1717
pub trait MirPass<'tcx> {
1818
fn run_on_mir(&mut self, mir: &mut Mir<'tcx>);

src/librustc_mir/transform/simplify_cfg.rs

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

11-
use repr::*;
1211
use rustc::middle::const_eval::ConstVal;
12+
use rustc::mir::repr::*;
1313
use std::mem;
1414
use transform::util;
1515
use transform::MirPass;

src/librustc_mir/transform/util.rs

+1-1
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 repr::*;
11+
use rustc::mir::repr::*;
1212

1313
/// Update basic block ids in all terminators using the given replacements,
1414
/// useful e.g. after removal of several basic blocks to update all terminators

src/librustc_mir/visit.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
// except according to those terms.
1010

1111
use rustc::middle::ty::Region;
12-
use repr::*;
12+
use rustc::mir::repr::*;
1313

1414
pub trait Visitor<'tcx> {
1515
// Override these, and call `self.super_xxx` to revert back to the

src/librustc_trans/trans/common.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ use middle::traits;
4040
use middle::ty::{self, HasTypeFlags, Ty};
4141
use middle::ty::fold::{TypeFolder, TypeFoldable};
4242
use rustc_front::hir;
43-
use rustc_mir::repr::Mir;
43+
use rustc::mir::repr::Mir;
4444
use util::nodemap::{FnvHashMap, NodeMap};
4545

4646
use arena::TypedArena;
@@ -1223,4 +1223,4 @@ pub fn get_static_val<'a, 'tcx>(ccx: &CrateContext<'a, 'tcx>,
12231223
} else {
12241224
base::get_extern_const(ccx, did, ty)
12251225
}
1226-
}
1226+
}

0 commit comments

Comments
 (0)