fn move_to_copy_pointers<'tcx>(tcx: TyCtxt<'tcx>, body: &mut Body<'tcx>)
Expand description
The SSA analysis done by SsaLocals
treats Operand::Move
as a read, even though in
general Operand::Move
represents pass-by-pointer where the callee can overwrite the
pointee (Miri always considers the place deinitialized). CopyProp has a similar trick to
turn Operand::Move
into Operand::Copy
when required for an optimization, but in this
pass we just turn all moves of pointers into copies because pointers should be by-value anyway.