This patch extends the support for simplifying the CFG based on a dominating condition. The search threshold is increased from 1 to 3. In turn, a new function is added to IR BasicBlock, getIDom(), that looks past hammocks and diamonds. I suspect this new function might be useful in other scenarios.
No correctness issues or compile-time regressions above noise for llvmts, SPEC2000, SPEC2006, SPEC2017. This results in a small code size reduction in some cases and hits about 1/3 of the SPEC benchmarks and a few tests from the llvmts.
Chad