The usual SSA rules don't apply for code that isn't reachable from the
entry, so we might find a user like
%user = select i1 %bool, i8* %ai, i8* %user
which is using itself, and then when examining that we would make
HasAddressTaken recurse until it blows the stack.
To determine if the user is in a basic block reachable from entry, we now
require that we have DominatorTree information. That affected a few test
cases checking the pass pipeline.