Target "triple" support.
A convenient syntax for triple "literals".
A target "triple", because historically such things had three fields, though they've grown more features over time.
The "architecture" field, which in some cases also specifies a specific subarchitecture.
The "binary format" field, which is usually omitted, and the binary format is implied by the other fields.
The target memory endianness.
The "environment" field, which specifies an ABI environment on top of the operating system. In many configurations, this field is omitted, and the environment is implied by the operating system.
The "operating system" field, which sometimes implies an environment, and sometimes isn't an actual operating system.
An error returned from parsing a triple.
The width of a pointer (in the default address space).
The "vendor" field, which in practice is little more than an arbitrary modifier.