This patch introduces the hasAddressTakenAndUsed() API for
BasicBlock and make use it in InlineCost and JumpThreading.
I can also split this into 2 patches, i.e. introduce
hasAddressTakenAndUsed() first and make InlineCost use it, then
rewrite Jumpthreading to use it in the second patch.
Perhaps change this to: Return true if the basic block address is taken and used by other instructions that can not be proved to be dead.