On Tue, Feb 15, 2022 at 11:01:03AM +0800, HAO CHEN GUI wrote:
Hi!

> On 15/2/2022 上午 5:36, Segher Boessenkool wrote:
> > On Wed, Feb 09, 2022 at 10:43:17AM +0800, HAO CHEN GUI wrote:
> > All that are arguments for expanding to split form, not for removing
> > TImode from the iterator.  And you leave PTImode, which *always* is in
> > GPRs!
> >From my understanding, PTImode has limitation that it needs to be assigned
> with an even/odd register pair. So it can't be split before the reload pass.

TImode is put in an even/odd pair always as well.  What is special about
PTImode here?

> Currently it is split after reload.>

This prevents almost all optimisations.  Splits after reload should be a
last resort thing.  They almost always cause bigger problems than what
they are meant to solve.  There aren't many splitters that *have* to run
after RA!

> > (You'll also have to show it is *correct*, you need to prove (or show it
> > really likely :-) ) that after this change there are no TImode things
> > generated anywhere (anywhere!) that are no longer handled now).
> > 
> Yes, the TI may be generated after expand pass and causes ICEs. So how about
> creating two mode iterators? One is for expand which doesn't include TImode,
> another is for the split which include TImode and make TImode to be split
> as early as possible?

You can also have the expanders fail for TImode?  That gives you a good
place to put in a code comment as well ;-)


Segher

Reply via email to