This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: new-new-ra thoughts
- From: Denis Chertykov <denisc at overta dot ru>
- To: neroden at fastmail dot fm (Nathanael Nerode)
- Cc: gcc at gcc dot gnu dot org
- Date: 06 Jan 2005 20:52:07 +0300
- Subject: Re: new-new-ra thoughts
- References: <20050105034040.GA3324@fastmail.fm>
neroden@fastmail.fm (Nathanael Nerode) writes:
> OK, so we've come up with some interesting information...
>
> Steven Bosscher said:
> >Specifically, "instruction selection",
> >or in GCC terms alternative selection, should happen before regalloc
> >as much as possible, and in general machine descriptions should not
> >rely on reload to fix all the silly insns that look nothing like the
> >actual machine instructions.
>
> This is clearly correct. This could be, in some sense, a "lowering" stage,
> in which "generic RTL" (well, semi-generic) is transformed into
> "machine-specific RTL".
>
> Can this, in fact, be done before register allocation using the current
> machine descriptions? If so, it would be worth working out a proof of concept.
>
> --
> I don't know the state of pseudo use prior to regalloc. Has liveness analysis
> been performed, so that each pseudo corresponds to a single live range?
>
> If so it would be worthwhile to have a pass which identified pseudos for
> which there simply is no valid register class available, and split their
> ranges early.
>
> Thinking out loud:
> If a particular pseudo (live range) has several alternative instruction
> selection choices, but some combinations could only be satisfied by a
> particularly small register class, perhaps some sort of cost mechanism could
> encourage use of the instructions which have large register classes. Hmm.
> That's not going to work because it won't spread the use of the classes
> around. How about (grotesque, I know) producing solutions for both
> expansions and providing them to the register allocator?...
>
> --
> This space intentionally left blank.