GNU Compiler Collection (GCC) Internals: RTL |
---|
Next: Control Flow, Previous: Tree SSA, Up: Top [Contents][Index]
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 Objects: | Expressions vs vectors vs strings vs integers. | |
• RTL Classes: | Categories of RTL expression objects, and their structure. | |
• Accessors: | Macros to access expression operands or vector elts. | |
• Special Accessors: | Macros to access specific annotations on RTL. | |
• 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 bit-fields in memory or reg. | |
• Vector Operations: | Expressions involving vector datatypes. | |
• 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.
|
|
• Debug Information: | Expressions representing debugging information. | |
• 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. |
Next: Control Flow, Previous: Tree SSA, Up: Top [Contents][Index]