[GuardWidening] Refactor to work with the list of checks to widen/hoist
Currently we hoist conditions from widenable branch which are joined to the widenable_condition by And operation. E.g if we have br(WC && (c1 && c2)) we will operate with (c1 && c2) unsplitted. This patch adds more flexibility to that mechanism by supporting work with the list of checks parsed from the widenable branch. On that stage patch doesn't change the logic of checks hoisting. In the example above we will either hoist both checks [c1, c2] or none of them. But in the future we would improve that logic analyzing each check separately. Reviewed By: anna Differential Revision: https://reviews.llvm.org/D157689
Loading