There are cases, like with -fzero-call-used-regs, where we need to know
which registers can be used by a certain calling convention. This change
generates a list of registers used by each calling convention defined in
*CallingConv.td.
Calling conventions that use registers conditioned on Swift have those
registers placed in a separate list. This allows us to be flexible about
whether to use the Swift registers or not.
I know the current code is using std::string without explicitly including <string>, but would you mind please cleaning that up here (in this patch)?
Also curious if we should be preferring containers from ADT?