This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [new-ra] "#if DENIS"
- From: Denis Chertykov <denisc at overta dot ru>
- To: Michael Matz <matz at suse dot de>
- Cc: Denis Chertykov <denisc at overta dot ru>, gcc-patches at gcc dot gnu dot org
- Date: 16 Jul 2003 19:21:07 +0400
- Subject: Re: [new-ra] "#if DENIS"
- References: <Pine.LNX.4.44.0307151321560.26127-100000@wotan.suse.de>
Michael Matz <matz@suse.de> writes:
> Hi,
>
> On 15 Jul 2003, Denis Chertykov wrote:
>
> > Yes. This can introduces a few passes of allocation, but I havn't seen
> > more than two, and code quality will be higher than after reload pass.
> > Michael ! reload isn't so fast as you think.
>
> I don't think it's fast ;-) But I know that two additional but needless
> allocator rounds also aren't exactly fast. Needless in the sense that
> even without them reload wouldn't be needed (on my architecture).
I remember that reload (reload on insns modified by allocator) was founded
by me. After that I have realized assign_stack_slots and etc.
I can't remembered why these reloads happened.
Also I'm worried about register elimination. It's another one round of
similar problems.
> > > I made the appropriate changes to recog.c. While the new ra is running
> > > spill pseudos are recognized as memory expressions (as offseted from the
> > > frame or stack pointer, but with the real offset unknown).
> >
> > What happened if such pseudos will be colored ?
>
> The same what happens when the normal pseudos are colored. There is no
> difference.
>
> > To which color such pseudos will be colored ?
>
> To one of those allowed by the constraints.
You don't mark insns with spill-pseudos as ra_modified_insns.
Such insns isn't rescanned and will have a wrong web->regclass field.
So, spill-web can be colored to wrong color.
>
> > How will allocator insert colored pseudo to insn (reload again can
> > happened or special pass of allocation with pre-reload required) ?
>
> I don't understand. It's a simple normal reference to a pseudo register.
> It just happens to be a place where also a mem would be generally accepted
> (because that is what is checked by the changed validate_change),
> therefore this particular reference can be changed into a hardreg, or a
> stack reference without introducing reloads (modulo the problem that the
> particular address might not be acceptable).
I'm worry about things described above.
Denis.