[Dominators][AMDGPU] Don't use virtual exit node in findNearestCommonDominator. Cleanup MachinePostDominators.
This patch fixes a bug that originated from passing a virtual exit block (nullptr) to MachinePostDominatorTee::findNearestCommonDominator and resulted in assertion failures inside its callee. It also applies a small cleanup to the class.
The patch introduces a new function in PDT that given a list of MachineBasicBlocks finds their NCD. The new overload of findNearestCommonDominator handles virtual root correctly.
Note that similar handling of virtual root nodes is not necessary in (forward) DominatorTrees, as right now they don't use virtual roots.
Reviewers: tstellar, tpr, nhaehnle, arsenm, NutshellySima, grosser, hliao
Reviewed By: hliao
Subscribers: hliao, kzhuravl, jvesely, wdng, yaxunl, dstuttard, t-tye, hiraditya, llvm-commits
Tags: #amdgpu, #llvm
Differential Revision: https://reviews.llvm.org/D67974