Making a function livesafe involves adding a branch from a loop's back-edge block to the loop's merge if the number of loop iterations exceeds some limit. If the loop's merge block was unreachable, the new edge could be a problem, e.g. because the previously unreachable block might now be dominated, and might not be in the right position in the module for this.
A possible solution to this is to branch to a new block and have that new block return.