[PATCH] Implement switch statements with bit tests

Richard Henderson rth@redhat.com
Fri Jan 24 19:58:00 GMT 2003


On Fri, Jan 24, 2003 at 06:45:30AM -0700, Roger Sayle wrote:
> I was originally thinking that SImode represented the natural
> word size of the target.

Nope, that would be word_mode.  ;-)

> I don't suppose you would consider
> extending this strategy to DImode as the basis for a follow-up
> patch, rather than a show stopper for this one?

Um, I suppose so.

> This is a tricky one.  I wasn't sure if the distinction that you
> make above is preserved by the time you reach RTL.  Do target
> descriptions define ashlsi2qi?

No.

> It seems more a feature of front-ends with the undefined behaviour
> beyond word size that "1UL << (int)X" is effectively written in RTL
> as "1UL << (long)X", and "1 << (long)X" becomes "1 << (int)(long)X".

Yeah.  Perhaps a mis-feature of the rtl expanders.  It needn't
be headed by the backends, which can frob things back down to
QImode if they want.  But they have to do that themselves.


r~



More information about the Gcc-patches mailing list