MachineSink attempts to place instructions near the basic blocks where
they are needed.
Once an instruction has been sunk, its location relative to other
instructions no longer is consistent with the original source code. In
order to ensure correct stepping in the debugger, the debug location for
sunk instructions is either merged with the insertion point or erased if the
target successor block is empty.
We don't put braces around single statement if conditions. Should probably also update the comments (in a follow-up comment) for the debug value moving to be clear what's going on there versus the location.