https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105973
--- Comment #8 from Martin Liška <marxin at gcc dot gnu.org> --- Thinking about it, we would likely need a "data flow" algorithm, where we want to transitively propagate equal predicates that occur in both successors of a basic block. Once we "merge" such a predictor, a new merging opportunity can happen. Honza, do you know about a feasible framework I should use? Or should I create an ad-hoc work queue approach in this situation?