[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

19. RTL Representation

Most of the work of the compiler is done on an 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.

19.1 RTL Object Types  Expressions vs vectors vs strings vs integers.
19.2 RTL Classes and Formats  Categories of RTL expression objects, and their structure.
19.3 Access to Operands  Macros to access expression operands or vector elts.
19.4 Flags in an RTL Expression  Other flags in an RTL expression.
19.5 Machine Modes  Describing the size and format of a datum.
19.6 Constant Expression Types  Expressions with constant values.
19.7 Registers and Memory  Expressions representing register contents or memory.
19.8 RTL Expressions for Arithmetic  Expressions representing arithmetic on other expressions.
19.9 Comparison Operations  Expressions representing comparison of expressions.
19.10 Bit-Fields  Expressions representing bit-fields in memory or reg.
19.11 Vector Operations  Expressions involving vector datatypes.
19.12 Conversions  Extending, truncating, floating or fixing.
19.13 Declarations  Declaring volatility, constancy, etc.
19.14 Side Effect Expressions  Expressions for storing in registers, etc.
19.15 Embedded Side-Effects on Addresses  Embedded side-effects for autoincrement addressing.
19.16 Assembler Instructions as Expressions  Representing asm with operands.
19.17 Insns  Expression types for entire insns.
19.18 RTL Representation of Function-Call Insns  RTL representation of function call insns.
19.19 Structure Sharing Assumptions  Some expressions are unique; others *must* be copied.
19.20 Reading RTL  Reading textual RTL from a file.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

This document was generated by Vincent Chung on June, 26 2001 using texi2html