On Tue, 31 May 2011, Richard Sandiford wrote:

> Gah, seems like I'd forgotten the "no subclasses" bit by the time
> I started looking at code.  Sorry for the false alarm.

Still, the extra look made me realise that I should have
restricted that statement to allocatable registers.
(And I really do appreciate a look from a native speaker.)

Updated patch follows, checked dvi and info output:

        * doc/tm.texi.in (Register Classes): Document rule for the narrowest
        register classes.
        * doc/tm.texi: Regenerate.

Index: doc/tm.texi.in
===================================================================
--- doc/tm.texi.in      (revision 174376)
+++ doc/tm.texi.in      (working copy)
@@ -2327,6 +2327,12 @@ constraints is through machine-dependent
 You can define such letters to correspond to various classes, then use
 them in operand constraints.

+You must define the narrowest register classes for allocatable
+registers, so that each class either has no subclasses, or that for
+some mode, the move cost between registers within the class is
+cheaper than moving a register in the class to or from memory
+(@pxref{Costs}).
+
 You should define a class for the union of two classes whenever some
 instruction allows both classes.  For example, if an instruction allows
 either a floating point (coprocessor) register or a general register for a

brgds, H-P

Reply via email to