Skip to content

Commit 39d93b1

Browse files
committed
codegen_place and related functions can take PlaceRef by value
1 parent 10b19f6 commit 39d93b1

File tree

5 files changed

+19
-19
lines changed

5 files changed

+19
-19
lines changed

src/librustc_codegen_ssa/mir/block.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
264264
}
265265

266266
PassMode::Direct(_) | PassMode::Pair(..) => {
267-
let op = self.codegen_consume(&mut bx, &mir::Place::return_place().as_ref());
267+
let op = self.codegen_consume(&mut bx, mir::Place::return_place().as_ref());
268268
if let Ref(llval, _, align) = op.val {
269269
bx.load(llval, align)
270270
} else {
@@ -319,7 +319,7 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
319319
return;
320320
}
321321

322-
let place = self.codegen_place(&mut bx, &location.as_ref());
322+
let place = self.codegen_place(&mut bx, location.as_ref());
323323
let (args1, args2);
324324
let mut args = if let Some(llextra) = place.llextra {
325325
args2 = [place.llval, llextra];
@@ -1111,7 +1111,7 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
11111111
} else {
11121112
self.codegen_place(
11131113
bx,
1114-
&mir::PlaceRef { local: &dest.local, projection: &dest.projection },
1114+
mir::PlaceRef { local: &dest.local, projection: &dest.projection },
11151115
)
11161116
};
11171117
if fn_ret.is_indirect() {
@@ -1137,7 +1137,7 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
11371137
LocalRef::Place(place) => self.codegen_transmute_into(bx, src, place),
11381138
LocalRef::UnsizedPlace(_) => bug!("transmute must not involve unsized locals"),
11391139
LocalRef::Operand(None) => {
1140-
let dst_layout = bx.layout_of(self.monomorphized_place_ty(&dst.as_ref()));
1140+
let dst_layout = bx.layout_of(self.monomorphized_place_ty(dst.as_ref()));
11411141
assert!(!dst_layout.ty.has_erasable_regions());
11421142
let place = PlaceRef::alloca(bx, dst_layout);
11431143
place.storage_live(bx);
@@ -1151,7 +1151,7 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
11511151
}
11521152
}
11531153
} else {
1154-
let dst = self.codegen_place(bx, &dst.as_ref());
1154+
let dst = self.codegen_place(bx, dst.as_ref());
11551155
self.codegen_transmute_into(bx, src, dst);
11561156
}
11571157
}

src/librustc_codegen_ssa/mir/operand.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,7 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
369369
fn maybe_codegen_consume_direct(
370370
&mut self,
371371
bx: &mut Bx,
372-
place_ref: &mir::PlaceRef<'_, 'tcx>,
372+
place_ref: mir::PlaceRef<'_, 'tcx>,
373373
) -> Option<OperandRef<'tcx, Bx::Value>> {
374374
debug!("maybe_codegen_consume_direct(place_ref={:?})", place_ref);
375375

@@ -413,7 +413,7 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
413413
pub fn codegen_consume(
414414
&mut self,
415415
bx: &mut Bx,
416-
place_ref: &mir::PlaceRef<'_, 'tcx>,
416+
place_ref: mir::PlaceRef<'_, 'tcx>,
417417
) -> OperandRef<'tcx, Bx::Value> {
418418
debug!("codegen_consume(place_ref={:?})", place_ref);
419419

@@ -444,7 +444,7 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
444444

445445
match *operand {
446446
mir::Operand::Copy(ref place) | mir::Operand::Move(ref place) => {
447-
self.codegen_consume(bx, &place.as_ref())
447+
self.codegen_consume(bx, place.as_ref())
448448
}
449449

450450
mir::Operand::Constant(ref constant) => {

src/librustc_codegen_ssa/mir/place.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -408,14 +408,14 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
408408
pub fn codegen_place(
409409
&mut self,
410410
bx: &mut Bx,
411-
place_ref: &mir::PlaceRef<'_, 'tcx>,
411+
place_ref: mir::PlaceRef<'_, 'tcx>,
412412
) -> PlaceRef<'tcx, Bx::Value> {
413413
debug!("codegen_place(place_ref={:?})", place_ref);
414414
let cx = self.cx;
415415
let tcx = self.cx.tcx();
416416

417417
let result = match place_ref {
418-
mir::PlaceRef { local, projection: [] } => match self.locals[**local] {
418+
mir::PlaceRef { local, projection: [] } => match self.locals[*local] {
419419
LocalRef::Place(place) => {
420420
return place;
421421
}
@@ -428,13 +428,13 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
428428
},
429429
mir::PlaceRef { local, projection: [proj_base @ .., mir::ProjectionElem::Deref] } => {
430430
// Load the pointer from its location.
431-
self.codegen_consume(bx, &mir::PlaceRef { local, projection: proj_base })
431+
self.codegen_consume(bx, mir::PlaceRef { local, projection: proj_base })
432432
.deref(bx.cx())
433433
}
434434
mir::PlaceRef { local, projection: [proj_base @ .., elem] } => {
435435
// FIXME turn this recursion into iteration
436436
let cg_base =
437-
self.codegen_place(bx, &mir::PlaceRef { local, projection: proj_base });
437+
self.codegen_place(bx, mir::PlaceRef { local, projection: proj_base });
438438

439439
match elem {
440440
mir::ProjectionElem::Deref => bug!(),
@@ -497,7 +497,7 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
497497
result
498498
}
499499

500-
pub fn monomorphized_place_ty(&self, place_ref: &mir::PlaceRef<'_, 'tcx>) -> Ty<'tcx> {
500+
pub fn monomorphized_place_ty(&self, place_ref: mir::PlaceRef<'_, 'tcx>) -> Ty<'tcx> {
501501
let tcx = self.cx.tcx();
502502
let place_ty = mir::Place::ty_from(place_ref.local, place_ref.projection, *self.mir, tcx);
503503
self.monomorphize(&place_ty.ty)

src/librustc_codegen_ssa/mir/rvalue.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -467,7 +467,7 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
467467
mir::Rvalue::Discriminant(ref place) => {
468468
let discr_ty = rvalue.ty(*self.mir, bx.tcx());
469469
let discr = self
470-
.codegen_place(&mut bx, &place.as_ref())
470+
.codegen_place(&mut bx, place.as_ref())
471471
.codegen_get_discr(&mut bx, discr_ty);
472472
(
473473
bx,
@@ -541,7 +541,7 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
541541
}
542542
}
543543
// use common size calculation for non zero-sized types
544-
let cg_value = self.codegen_place(bx, &place.as_ref());
544+
let cg_value = self.codegen_place(bx, place.as_ref());
545545
cg_value.len(bx.cx())
546546
}
547547

@@ -552,7 +552,7 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
552552
place: &mir::Place<'tcx>,
553553
mk_ptr_ty: impl FnOnce(TyCtxt<'tcx>, Ty<'tcx>) -> Ty<'tcx>,
554554
) -> (Bx, OperandRef<'tcx, Bx::Value>) {
555-
let cg_place = self.codegen_place(&mut bx, &place.as_ref());
555+
let cg_place = self.codegen_place(&mut bx, place.as_ref());
556556

557557
let ty = cg_place.layout.ty;
558558

src/librustc_codegen_ssa/mir/statement.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,12 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
4141
}
4242
}
4343
} else {
44-
let cg_dest = self.codegen_place(&mut bx, &place.as_ref());
44+
let cg_dest = self.codegen_place(&mut bx, place.as_ref());
4545
self.codegen_rvalue(bx, cg_dest, rvalue)
4646
}
4747
}
4848
mir::StatementKind::SetDiscriminant { box ref place, variant_index } => {
49-
self.codegen_place(&mut bx, &place.as_ref())
49+
self.codegen_place(&mut bx, place.as_ref())
5050
.codegen_set_discr(&mut bx, variant_index);
5151
bx
5252
}
@@ -70,7 +70,7 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
7070
let outputs = asm
7171
.outputs
7272
.iter()
73-
.map(|output| self.codegen_place(&mut bx, &output.as_ref()))
73+
.map(|output| self.codegen_place(&mut bx, output.as_ref()))
7474
.collect();
7575

7676
let input_vals = asm.inputs.iter().fold(

0 commit comments

Comments
 (0)