Addressed review comments. Mir test pending.
SmallSet does not provide a way to iterate over members in the set.
It does not mean they can be sunk. Two predecessors may have different tailing instructions, but all can be dead given the path to s_endpgm. Also some instructions are eliminated from preceding blocks by the very same pass which would then allow to merge blocks, but only after this pass finished.