Re: register_operand in non-strict RTL

Segher Boessenkool <[email protected]>
Newsgroups gmane.comp.gcc.devel
Message-ID <ahyKOdmVxMhAxLce@gate>
Hi!

On Sun, May 31, 2026 at 05:03:10PM +0200, Georg-Johann Lay wrote:
> Am 30.05.26 um 16:48 schrieb Segher Boessenkool:
> > Prior to RA you have the predicates only.  During RA and reload you
> > have to satisfy both the predicates and the constraints.  After reload
> > only the constraints matter.
> 
> As far as I know there's at least one exception: RTL peepholes.

peephole2's, surely :-)  Old peepholes are a lot of fun, but even I do
not trust people who think such fun is fun :-)

> They use the predicates for matching, ignoring the constrains.

Maybe some do, but in general the condition is just any piece of C code
resulting in zero or non-zero.  Reusing existing predicates is not such
a great idea, see the confusion it apparently causes :-)

> Such a peephole2 must FAIL when it can't digest some operand combo.

In the preparation statement, yeah.  Exacly like in define_expand and
define_split as well :-)  Some things in GCC are nice and regular, as
unbelievable as that may sound!


Segher
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.