Different internal representation of SwitchInst

SwitchInst is currently represented as paired operands, which is
internally a linked-list. This is not ideal, as these types are fixed
(APInt and BasicBlock), and there is also code of dubious quality that
doesn't really get that this is a linked list, like from


I've already done quite a bit of work on the SwitchInst, and have much
more planned. I think the cases would be better represented by a
SmallArray<std::pair<APInt, BasicBlock*>, 4>.

Before I get time to jump in implement this, assuming I can probably
keep most of the interfaces, is there any reason this wouldn't work?

-Shawn Landden

This sounds like a great improvement to me Shawn!