Commits

John McCall committed 275ef489d4a
Switch IRGen to use ClusteredBitVector. IRGen uses a typedef, SpareBitVector, for its principal purpose of tracking spare bits. Other uses should not use this typedef, and I've tried to follow that, but I did this rewrite mostly with sed and may have missed some fixups. This should be almost completely NFC. There may be some subtle changes in spare bits for witness tables and other off-beat pointer types. I also fixed a bug where IRGen thought that thin functions were two pointers wide, but this wouldn't have affected anything because we never store thin functions anyway, since they're not a valid AST type. This commit repplies r24305 with two fixes: - It fixes the computation of spare bits for unusual integer types to use the already-agreed-upon type size instead of recomputing it. This fixes the i386 stdlib build. Joe and I agreed that we should also change the size to use the LLVM alloc size instead of the next power of 2, but this patch does not do that yet. - It changes the spare bits in function types back to the empty set. I'll be changing this in a follow-up, but it needs to be tied to runtime changes. This fixes the regression test failures. Swift SVN r24324