This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix PR middle-end/28690, indexed load/store performance + reload bug


On Tue, 12 Dec 2006, David Edelsohn wrote:

> Ulrich> I guess one question is, why do you need that predicate in the 
> Ulrich> first place, and don't just use register_operand?  In 
> Ulrich> particular, given the issues discussed in this thread, the 
> Ulrich> predicate doesn't appear to have the intended effect anyway ...
> 	As stated in the GCC documentation of predicates:
> "Operand predicates can allow operands that are not actually acceptable 
> to the hardware, as long as the constraints give reload the ability to 
> fix them up.  However, GCC will usually generate better code if the 
> predicates specify the requirements of the machine instructions as 
> closely as possible."

Yes, but in this case you _forbid_ some operands (namely some specific 
hardware registers), the opposite of what's allowed by the above docu.

The above docu refers to cases like allowing all constants and registers 
in the predicate, where the constraint then only allows restricted 
constants (and at least one register to make necessary reloads).

I tried to find docu where what I say here is specified (I thought I 
remembered that there was such in the past) but I failed, so I'm 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]