[Reachability] Added IterativeBackwardReachability.
[Reachability] Added IterativeBackwardReachability.

The new optimistic, iterative backward reachability is optimized to do
as little work as possible.  Only blocks not all of whose successors are
kills participate in the worklist at all.  The blocks within that
discovered set are visited via a worklist which tracks blocks which have
been found to be unreachable at begin and whose
unreachable-at-begin-ness must be propagated into
unreachable-at-end-ness of its predecessors.

rdar://92545900

JGiola/swift,benlangmuir/swift,glessard/swift,apple/swift,apple/swift,benlangmuir/swift,apple/swift,ahoppen/swift,roambotics/swift,roambotics/swift,benlangmuir/swift,glessard/swift,JGiola/swift,ahoppen/swift,ahoppen/swift,JGiola/swift,benlangmuir/swift,ahoppen/swift,glessard/swift,roambotics/swift,roambotics/swift,ahoppen/swift,JGiola/swift,JGiola/swift,apple/swift,ahoppen/swift,glessard/swift,benlangmuir/swift,JGiola/swift,glessard/swift,roambotics/swift,roambotics/swift,apple/swift,glessard/swift,benlangmuir/swift,apple/swift