DavidSpickett wrote: This is the last of the refactoring changes. https://github.com/llvm/llvm-project/pull/196032/commits has prototypes of union and vector as well, if you want to reuse any of that. https://github.com/llvm/llvm-project/pull/213897