diff options
| author | Paul Daniel Faria <Nashenas88@users.noreply.github.com> | 2019-11-06 00:04:53 -0500 |
|---|---|---|
| committer | Paul Daniel Faria <Nashenas88@users.noreply.github.com> | 2019-12-02 08:38:16 -0500 |
| commit | 595d161d36b5126e75840c29ce0413a07feebd02 (patch) | |
| tree | 0d145a73b39ad9e3c9ce028503ff4c996b585fdf /src/librustc_codegen_ssa | |
| parent | c42bdb8c7465389a4d71d88ff8d910d6307be9ba (diff) | |
| download | rust-595d161d36b5126e75840c29ce0413a07feebd02.tar.gz rust-595d161d36b5126e75840c29ce0413a07feebd02.zip | |
Remove BodyCache.body and rely on Deref as much as possible for ReadOnlyBodyCache
Diffstat (limited to 'src/librustc_codegen_ssa')
| -rw-r--r-- | src/librustc_codegen_ssa/mir/analyze.rs | 2 | ||||
| -rw-r--r-- | src/librustc_codegen_ssa/mir/block.rs | 9 | ||||
| -rw-r--r-- | src/librustc_codegen_ssa/mir/mod.rs | 2 | ||||
| -rw-r--r-- | src/librustc_codegen_ssa/mir/place.rs | 5 | ||||
| -rw-r--r-- | src/librustc_codegen_ssa/mir/rvalue.rs | 6 |
5 files changed, 13 insertions, 11 deletions
diff --git a/src/librustc_codegen_ssa/mir/analyze.rs b/src/librustc_codegen_ssa/mir/analyze.rs index d6fa67b0533..782c0f7e139 100644 --- a/src/librustc_codegen_ssa/mir/analyze.rs +++ b/src/librustc_codegen_ssa/mir/analyze.rs @@ -131,7 +131,7 @@ impl<Bx: BuilderMethods<'a, 'tcx>> LocalAnalyzer<'mir, 'a, 'tcx, Bx> { }; if is_consume { let base_ty = - mir::Place::ty_from(place_ref.base, proj_base, self.fx.mir.body(), cx.tcx()); + mir::Place::ty_from(place_ref.base, proj_base, &self.fx.mir, cx.tcx()); let base_ty = self.fx.monomorphize(&base_ty); // ZSTs don't require any actual memory access. diff --git a/src/librustc_codegen_ssa/mir/block.rs b/src/librustc_codegen_ssa/mir/block.rs index 2d41c8426de..0920de7d903 100644 --- a/src/librustc_codegen_ssa/mir/block.rs +++ b/src/librustc_codegen_ssa/mir/block.rs @@ -324,7 +324,7 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> { target: mir::BasicBlock, unwind: Option<mir::BasicBlock>, ) { - let ty = location.ty(self.mir.body(), bx.tcx()).ty; + let ty = location.ty(&self.mir, bx.tcx()).ty; let ty = self.monomorphize(&ty); let drop_fn = Instance::resolve_drop_in_place(bx.tcx(), ty); @@ -510,7 +510,7 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> { let extra_args = &args[sig.inputs().len()..]; let extra_args = extra_args.iter().map(|op_arg| { - let op_ty = op_arg.ty(self.mir.body(), bx.tcx()); + let op_ty = op_arg.ty(&self.mir, bx.tcx()); self.monomorphize(&op_ty) }).collect::<Vec<_>>(); @@ -569,7 +569,7 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> { // a NOP let target = destination.as_ref().unwrap().1; helper.maybe_sideeffect(self.mir, &mut bx, &[target]); - helper.funclet_br(self, &mut bx, destination.as_ref().unwrap().1) + helper.funclet_br(self, &mut bx, target) } return; } @@ -791,7 +791,8 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> { bb: mir::BasicBlock, ) { let mut bx = self.build_block(bb); - let data = &self.mir.body()[bb]; + let mir = self.mir; + let data = &mir[bb]; debug!("codegen_block({:?}={:?})", bb, data); diff --git a/src/librustc_codegen_ssa/mir/mod.rs b/src/librustc_codegen_ssa/mir/mod.rs index 9549749f512..9374c829e4f 100644 --- a/src/librustc_codegen_ssa/mir/mod.rs +++ b/src/librustc_codegen_ssa/mir/mod.rs @@ -156,7 +156,7 @@ pub fn codegen_mir<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>>( }).collect(); let (landing_pads, funclets) = create_funclets(&mir, &mut bx, &cleanup_kinds, &block_bxs); - let mir_body = mir.body(); + let mir_body: &Body<'_> = &mir; let mut fx = FunctionCx { instance, mir, diff --git a/src/librustc_codegen_ssa/mir/place.rs b/src/librustc_codegen_ssa/mir/place.rs index 0790526e9f9..5ea08edd035 100644 --- a/src/librustc_codegen_ssa/mir/place.rs +++ b/src/librustc_codegen_ssa/mir/place.rs @@ -594,8 +594,9 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> { let place_ty = mir::Place::ty_from( place_ref.base, place_ref.projection, - self.mir.body(), - tcx); + &self.mir, + tcx, + ); self.monomorphize(&place_ty.ty) } } diff --git a/src/librustc_codegen_ssa/mir/rvalue.rs b/src/librustc_codegen_ssa/mir/rvalue.rs index fb5fc561b08..fa157a0c35f 100644 --- a/src/librustc_codegen_ssa/mir/rvalue.rs +++ b/src/librustc_codegen_ssa/mir/rvalue.rs @@ -460,7 +460,7 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> { } mir::Rvalue::Discriminant(ref place) => { - let discr_ty = rvalue.ty(self.mir.body(), bx.tcx()); + let discr_ty = rvalue.ty(&self.mir, bx.tcx()); let discr = self.codegen_place(&mut bx, &place.as_ref()) .codegen_get_discr(&mut bx, discr_ty); (bx, OperandRef { @@ -513,7 +513,7 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> { mir::Rvalue::Aggregate(..) => { // According to `rvalue_creates_operand`, only ZST // aggregate rvalues are allowed to be operands. - let ty = rvalue.ty(self.mir.body(), self.cx.tcx()); + let ty = rvalue.ty(&self.mir, self.cx.tcx()); let operand = OperandRef::new_zst( &mut bx, self.cx.layout_of(self.monomorphize(&ty)), @@ -710,7 +710,7 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> { true, mir::Rvalue::Repeat(..) | mir::Rvalue::Aggregate(..) => { - let ty = rvalue.ty(self.mir.body(), self.cx.tcx()); + let ty = rvalue.ty(&self.mir, self.cx.tcx()); let ty = self.monomorphize(&ty); self.cx.spanned_layout_of(ty, span).is_zst() } |
