move_to_copy_pointers

Function move_to_copy_pointers 

Source
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.