This can significantly reduce the size of the switch, allowing for more
efficient lowering.
SimplifyCFG currently does this transformation, but I'm working on
changing that to make it possible to exploit unreachable default cases.
I also worked with the idea of exploiting unreachable defaults by
omitting the range check for jump tables, but always ended up with a
non-neglible binary size increase. It might be worth looking into some more.
(This was broken out of http://reviews.llvm.org/D6471)
DenseMap<const BasicBlock *, uint64_t>