Merging regions can enable new sinking opportunities (e.g. if users of a
scalar value are moved from different VPBBs into the same VPBB). Sinking
in turn can also enable new merging opportunities (e.g. if a recipe
between to merge-able regions is moved.
To enable more sinking opportunities, repeat sinking & merging if
regions could be merged.
Also fix mergeReplicateRegions to return the correct Changed status.
Post-commit comments:
TODO: merging replicate regions can be simplified similar to merging basic-blocks below, by (renaming it mergeReplicateRegionsIntoSuccessors? and) collecting all Region1's in a Worklist and then traverse it to handle each Region1 including deleting it.
nit: would be good to record the test exercising three iterations of this while loop.