gccint: Pattern Ordering
1
1 17.10 When the Order of Patterns Matters
1 ========================================
1
1 Sometimes an insn can match more than one instruction pattern. Then the
1 pattern that appears first in the machine description is the one used.
1 Therefore, more specific patterns (patterns that will match fewer
1 things) and faster instructions (those that will produce better code
1 when they do match) should usually go first in the description.
1
1 In some cases the effect of ordering the patterns can be used to hide a
1 pattern when it is not valid. For example, the 68000 has an instruction
1 for converting a fullword to floating point and another for converting a
1 byte to floating point. An instruction converting an integer to
1 floating point could match either one. We put the pattern to convert
1 the fullword first to make sure that one will be used rather than the
1 other. (Otherwise a large integer might be generated as a single-byte
1 immediate quantity, which would not work.) Instead of using this
1 pattern ordering it would be possible to make the pattern for
1 convert-a-byte smart enough to deal properly with any constant value.
1