Target triple support.
A convenient syntax for triple literals.
A target "triple". Historically such things had three fields, though they've added additional fields 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 calling convention, which specifies things like which registers are used for passing arguments, which registers are callee-saved, and so on.
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.