If we have a CallBrInst with output that's used, we need to split
critical edges so that we have some place to insert COPYs for physregs
to virtregs.
Part 2a of
https://discourse.llvm.org/t/rfc-syncing-asm-goto-with-outputs-with-gcc/65453/8.
Test cases and logic re-purposed from D138078.
this needs to be changed to be like this to initialize dom tree (annoying legacy-PM boilerplate)