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