When SplitFunctions pass adds a trampoline code for exceptions landing
pads, it may increase the size of the hot code past an acceptable
threshold and trigger the revert of the splitting.
However, if createEHTrampolines() added new blocks to the CFG and
modified invoke instructions, simply restoring the original block layout
will not suffice. In such case, modify the original layout by merging in
trampoline blocks right before their matching targets. As a result, the
number of blocks will increase, but the number of instructions will stay
the same.
not sure what's the intent of using check-dag here instead of regular CHECK: