Next: Target Macros, Previous: Loop Analysis and Representation, Up: Top [Contents][Index]
A machine description has two parts: a file of instruction patterns (.md file) and a C header file of macro definitions.
The .md file for a target machine contains a pattern for each instruction that the target machine supports (or at least each instruction that is worth telling the compiler about). It may also contain comments. A semicolon causes the rest of the line to be a comment, unless the semicolon is inside a quoted string.
See the next chapter for information on the C header file.
| • Overview | How the machine description is used. | |
| • Patterns | How to write instruction patterns. | |
| • Example | An explained example of a define_insn pattern.
| |
| • RTL Template | The RTL template defines what insns match a pattern. | |
| • Output Template | The output template says how to make assembler code from such an insn. | |
| • Output Statement | For more generality, write C code to output the assembler code. | |
| • Compact Syntax | Compact syntax for writing machine descriptors. | |
| • Predicates | Controlling what kinds of operands can be used for an insn. | |
| • Constraints | Fine-tuning operand selection. | |
| • Standard Names | Names mark patterns to use for code generation. | |
| • Pattern Ordering | When the order of patterns makes a difference. | |
| • Dependent Patterns | Having one pattern may make you need another. | |
| • Jump Patterns | Special considerations for patterns for jump insns. | |
| • Looping Patterns | How to define patterns for special looping insns. | |
| • Insn Canonicalizations | Canonicalization of Instructions | |
| • Expander Definitions | Generating a sequence of several RTL insns for a standard operation. | |
| • Insn Splitting | Splitting Instructions into Multiple Instructions. | |
| • Including Patterns | Including Patterns in Machine Descriptions. | |
| • Peephole Definitions | Defining machine-specific peephole optimizations. | |
| • Insn Attributes | Specifying the value of attributes for generated insns. | |
| • Conditional Execution | Generating define_insn patterns for
predication.
| |
| • Define Subst | Generating define_insn and define_expand
patterns from other patterns.
| |
| • Constant Definitions | Defining symbolic constants that can be used in the md file. | |
| • Iterators | Using iterators to generate patterns from a template. |
Next: Target Macros, Previous: Loop Analysis and Representation, Up: Top [Contents][Index]