GNU Info

Info Node: (gcc-295.info)RTL

(gcc-295.info)RTL


Next: Machine Desc Prev: Passes Up: Top
Enter node , (file) or (file)node

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.

RTL Objects
Expressions vs vectors vs strings vs integers.
RTL Classes
Categories of RTL expresion objects, and their structure.
Accessors
Macros to access expression operands or vector elts.
Flags
Other flags in an RTL expression.
Machine Modes
Describing the size and format of a datum.
Constants
Expressions with constant values.
Regs and Memory
Expressions representing register contents or memory.
Arithmetic
Expressions representing arithmetic on other expressions.
Comparisons
Expressions representing comparison of expressions.
Bit Fields
Expressions representing bitfields in memory or reg.
Conversions
Extending, truncating, floating or fixing.
RTL Declarations
Declaring volatility, constancy, etc.
Side Effects
Expressions for storing in registers, etc.
Incdec
Embedded side-effects for autoincrement addressing.
Assembler
Representing `asm' with operands.
Insns
Expression types for entire insns.
Calls
RTL representation of function call insns.
Sharing
Some expressions are unique; others *must* be copied.
Reading RTL
Reading textual RTL from a file.

automatically generated by info2www version 1.2.2.9