Collection of PostDominatedByUnreachable and PostDominatedByColdCall have been split
out of heuristics itself. Update of the data happens now for each basic block (before update
for PostDominatedByColdCall might be skipped if unreachable or matadata heuristic
handled this basic block).
This separation allows re-ordering of heuristics without loosing the post-domination information.
You can rewrite this without the loop: