RTL Representation#
The last part of the compiler work is done on a low-level intermediate representation called Register Transfer Language. In this language, the instructions to be output are described, pretty much one by one, in an algebraic form that describes what the instruction does.
RTL is inspired by Lisp lists. It has both an internal form, made up of structures that point at other structures, and a textual form that is used in the machine description and in printed debugging dumps. The textual form uses nested parentheses to indicate the pointers in the internal form.
- RTL Object Types
- RTL Classes and Formats
- Access to Operands
- Access to Special Operands
- Flags in an RTL Expression
- Machine Modes
- Constant Expression Types
- Registers and Memory
- RTL Expressions for Arithmetic
- Comparison Operations
- Bit-Fields
- Vector Operations
- Conversions
- Declarations
- Side Effect Expressions
- Embedded Side-Effects on Addresses
- Assembler Instructions as Expressions
- Variable Location Debug Information in RTL
- Insns
- RTL Representation of Function-Call Insns
- On-the-Side SSA Form for RTL
- Structure Sharing Assumptions
- Reading RTL