Currently we try to erase instructions only in the very block
that literally has unreachable terminator.
While this is conservatively correct, we can do better.
If the block consists only of said unreachable,
then it stops being a successor of it's predecessors,
and if for some predecessor that means it no longer has
any successors, then said predecessor earns an unreachable
terminator itself. And so on.
SimplifyCFG would do at least some of that,
but relying on that requires for the InstCombine pass
to be rerun after SimplifyCFG, which isn't optimal..