about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorMark-Simulacrum <mark.simulacrum@gmail.com>2016-12-17 12:56:33 -0700
committerMark Simulacrum <mark.simulacrum@gmail.com>2016-12-20 20:03:30 -0700
commit1804131b6da1765678c1b6881dcd1b4f4ca00bc4 (patch)
treea0eda6a11440af6aede75d038ef40b0fecf6b38f /src
parent937001a1f8a05a07b16233bcfdf53d9d3381e45c (diff)
downloadrust-1804131b6da1765678c1b6881dcd1b4f4ca00bc4.tar.gz
rust-1804131b6da1765678c1b6881dcd1b4f4ca00bc4.zip
Remove Ref::clone for MirContext mir
Diffstat (limited to 'src')
-rw-r--r--src/librustc_trans/base.rs3
-rw-r--r--src/librustc_trans/debuginfo/create_scope_map.rs3
-rw-r--r--src/librustc_trans/mir/block.rs3
-rw-r--r--src/librustc_trans/mir/mod.rs12
4 files changed, 8 insertions, 13 deletions
diff --git a/src/librustc_trans/base.rs b/src/librustc_trans/base.rs
index aefdfee9d8c..48f8c2efe86 100644
--- a/src/librustc_trans/base.rs
+++ b/src/librustc_trans/base.rs
@@ -696,7 +696,8 @@ pub fn trans_instance<'a, 'tcx>(ccx: &CrateContext<'a, 'tcx>, instance: Instance
 
     let fcx = FunctionContext::new(ccx, lldecl, fn_ty, Some((instance, &sig, abi)), true);
 
-    mir::trans_mir(&fcx, ccx.tcx().item_mir(instance.def));
+    let mir = ccx.tcx().item_mir(instance.def);
+    mir::trans_mir(&fcx, &mir);
 }
 
 pub fn trans_ctor_shim<'a, 'tcx>(ccx: &CrateContext<'a, 'tcx>,
diff --git a/src/librustc_trans/debuginfo/create_scope_map.rs b/src/librustc_trans/debuginfo/create_scope_map.rs
index 3ddbed7aebd..0f20ed285b6 100644
--- a/src/librustc_trans/debuginfo/create_scope_map.rs
+++ b/src/librustc_trans/debuginfo/create_scope_map.rs
@@ -19,7 +19,6 @@ use rustc::mir::{Mir, VisibilityScope};
 
 use libc::c_uint;
 use std::ptr;
-use std::cell::Ref;
 
 use syntax_pos::Pos;
 
@@ -47,7 +46,7 @@ impl MirDebugScope {
 /// If debuginfo is disabled, the returned vector is empty.
 pub fn create_mir_scopes<'tcx>(
     fcx: &FunctionContext,
-    mir: Ref<'tcx, Mir<'tcx>>,
+    mir: &'tcx Mir<'tcx>,
 ) -> IndexVec<VisibilityScope, MirDebugScope> {
     let null_scope = MirDebugScope {
         scope_metadata: ptr::null_mut(),
diff --git a/src/librustc_trans/mir/block.rs b/src/librustc_trans/mir/block.rs
index 45f9279049c..4d78170f845 100644
--- a/src/librustc_trans/mir/block.rs
+++ b/src/librustc_trans/mir/block.rs
@@ -38,14 +38,13 @@ use super::lvalue::{LvalueRef};
 use super::operand::OperandRef;
 use super::operand::OperandValue::{Pair, Ref, Immediate};
 
-use std::cell::Ref as CellRef;
 use std::ptr;
 
 impl<'bcx, 'tcx> MirContext<'bcx, 'tcx> {
     pub fn trans_block(&mut self, bb: mir::BasicBlock,
         funclets: &IndexVec<mir::BasicBlock, Option<Funclet>>) {
         let mut bcx = self.build_block(bb);
-        let data = &CellRef::clone(&self.mir)[bb];
+        let data = &self.mir[bb];
 
         debug!("trans_block({:?}={:?})", bb, data);
 
diff --git a/src/librustc_trans/mir/mod.rs b/src/librustc_trans/mir/mod.rs
index b0b41cd1b06..158e14c17aa 100644
--- a/src/librustc_trans/mir/mod.rs
+++ b/src/librustc_trans/mir/mod.rs
@@ -24,7 +24,6 @@ use type_of;
 use syntax_pos::{DUMMY_SP, NO_EXPANSION, COMMAND_LINE_EXPN, BytePos, Span};
 use syntax::symbol::keywords;
 
-use std::cell::Ref;
 use std::iter;
 
 use basic_block::BasicBlock;
@@ -41,7 +40,7 @@ use self::operand::{OperandRef, OperandValue};
 
 /// Master context for translating MIR.
 pub struct MirContext<'bcx, 'tcx:'bcx> {
-    mir: Ref<'tcx, mir::Mir<'tcx>>,
+    mir: &'bcx mir::Mir<'tcx>,
 
     /// Function context
     fcx: &'bcx common::FunctionContext<'bcx, 'tcx>,
@@ -179,10 +178,7 @@ impl<'tcx> LocalRef<'tcx> {
 
 ///////////////////////////////////////////////////////////////////////////
 
-pub fn trans_mir<'blk, 'tcx: 'blk>(
-    fcx: &'blk FunctionContext<'blk, 'tcx>,
-    mir: Ref<'tcx, Mir<'tcx>>
-) {
+pub fn trans_mir<'blk, 'tcx: 'blk>(fcx: &'blk FunctionContext<'blk, 'tcx>, mir: &'blk Mir<'tcx>) {
     let bcx = fcx.get_entry_block();
 
     // Analyze the temps to determine which must be lvalues
@@ -201,10 +197,10 @@ pub fn trans_mir<'blk, 'tcx: 'blk>(
         }).collect();
 
     // Compute debuginfo scopes from MIR scopes.
-    let scopes = debuginfo::create_mir_scopes(fcx, Ref::clone(&mir));
+    let scopes = debuginfo::create_mir_scopes(fcx, mir);
 
     let mut mircx = MirContext {
-        mir: Ref::clone(&mir),
+        mir: mir,
         fcx: fcx,
         llpersonalityslot: None,
         blocks: block_bcxs,