The temporary IDoms map was used only during DomTree calculation. We can move it to SNCAInfo so that it's no longer a DominatorTreeBase member.
where else is getNodeForBlock used? Because requiring you pass a temporary thing that exists only during construction is ... weird.
Are we sure it actually belongs as part of dominatortreebase?
It is used only in Calculate and I doesn't make much sense to keep it DominatorTreeBase.
My plan was to make a builder class that would run Semi-NCA and manage all of the temporaries. This would be probably to much to put in one review, so I tried to split it up into a series of small patches that move build-related temporaries out of the main DominatorTreeBase class.
This is the last commit that moves that data out of DTB and I wanted to structure whole thing better in a new patch -- so that DTB won't be responsible for the tree construction.