On llvm.org and all downstream forks that I'm aware of, SignalCodes are
always created from C string literals. They are never compared to
anything so they take up space in the ConstString StringPool for no
tangible benefit.
I've changed the type here to const llvm::StringLiteral instead of
using a StringRef or a const char * to express intent -- These
strings come from constant data whose lifetime is directly tied to that
of the running process (and are thus safe to store).