This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [new-ra] "#if DENIS"


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]