Expand description

Target triple support.

Macros

A convenient syntax for triple literals.

Structs

A simple wrapper around Triple that provides an implementation of Default which defaults to Triple::host().

A simple wrapper around Triple that provides an implementation of Default which defaults to Triple::unknown().

A target “triple”. Historically such things had three fields, though they’ve added additional fields over time.

Enums

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 C data model used on a target.

The calling convention, which specifies things like which registers are used for passing arguments, which registers are callee-saved, and so on.

A string for a Vendor::Custom that can either be used in const contexts or hold dynamic strings.

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.

An enum for all 32-bit MIPS architectures (not just “MIPS32”).

An enum for all 64-bit MIPS architectures (not just “MIPS64”).

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).

An enum for all 32-bit RISC-V architectures.

An enum for all 64-bit RISC-V architectures.

The size of a type.

The “vendor” field, which in practice is little more than an arbitrary modifier.

An enum for all 32-bit x86 architectures.

Constants

The Triple of the current host.