Quoting Mohamed Shafi <shafi...@gmail.com>:

On 12 November 2010 18:39, Joern Rennecke <amyl...@spamcop.net> wrote:
Quoting Mohamed Shafi <shafi...@gmail.com>:

So i have the following questions:

1. Why is that constraints are not matched here?

Please read the node "Register Classes" in doc/tm.texi .


I am sorry , could you please highlight the relevant portion for me?
In the pattern that i have given the combination (a,W) satisfies the
pattern. But its not matched because i have given then like (da,Wd). I
know that we can combine the constraints together.

Do you think that the attached patch improves the documentation?

2010-11-12  Joern Rennecke  <amyl...@spamcop.net>

        * doc/tm.texi.in: Spell out that a lack of register class unions
        can lead to ICEs.
        * doc/tm.texi: Regenerate.

Index: doc/tm.texi
===================================================================
--- doc/tm.texi (revision 166609)
+++ doc/tm.texi (working copy)
@@ -2337,7 +2343,9 @@ union of two classes will be another cla
 instruction allows both classes.  For example, if an instruction allows
 either a floating point (coprocessor) register or a general register for a
 certain operand, you should define a class @code{FLOAT_OR_GENERAL_REGS}
-which includes both of them.  Otherwise you will get suboptimal code.
+which includes both of them.  Otherwise you will get suboptimal code,
+or even internal compiler errors when reload cannot find a register in the
+the class computed via @code{reg_class_subunion}.
 
 You must also specify certain redundant information about the register
 classes: for each class, which classes contain it and which ones are
Index: doc/tm.texi.in
===================================================================
--- doc/tm.texi.in      (revision 166609)
+++ doc/tm.texi.in      (working copy)
@@ -2327,7 +2333,9 @@ union of two classes will be another cla
 instruction allows both classes.  For example, if an instruction allows
 either a floating point (coprocessor) register or a general register for a
 certain operand, you should define a class @code{FLOAT_OR_GENERAL_REGS}
-which includes both of them.  Otherwise you will get suboptimal code.
+which includes both of them.  Otherwise you will get suboptimal code,
+or even internal compiler errors when reload cannot find a register in the
+the class computed via @code{reg_class_subunion}.
 
 You must also specify certain redundant information about the register
 classes: for each class, which classes contain it and which ones are

Reply via email to