In the SIL docs, a "loadable" type is defined as:
Most SIL types are loadable. That means that a value of such a type can be represented as an SSA value.
I'm curious about the choice of that particular word. I've done a small amount of research into it, but was wondering if anyone more familiar could share any info on the etymology.
The Internet suggests the term was chosen because the values "can be 'loaded' into CPU registers". That seems plausible, though it doesn't quite match the definition given in the compiler docs. What does it mean more precisely for a value to be able to "be represented as an SSA value"?
A couple other related questions:
- Are there other languages/ecosystems that use this terminology, or is it unique to Swift?
- Even if "being able to be loaded into CPU registers" isn't the right definition, at some point a value is presumably "too big" for that to be done despite its layout being fully known. How is this handled in Swift?