This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: no_new_pseudos
- From: Richard Earnshaw <rearnsha at arm dot com>
- To: Ian Lance Taylor <iant at google dot com>
- Cc: Paolo Bonzini <bonzini at gnu dot org>, Andrew Pinski <pinskia at gmail dot com>, Alexandre Oliva <aoliva at redhat dot com>, Kenneth Zadeck <zadeck at naturalbridge dot com>, Richard Kenner <kenner at vlsi1 dot ultra dot nyu dot edu>, dave dot korn at artimi dot com, dje at watson dot ibm dot com, gcc at gcc dot gnu dot org, rsandifo at nildram dot co dot uk, stevenb dot gcc at gmail dot com
- Date: Mon, 09 Jul 2007 17:38:53 +0100
- Subject: Re: no_new_pseudos
- References: <46892386.9080103@naturalbridge.com> <m3ejjl8lqg.fsf@localhost.localdomain> <orr6njqs6o.fsf@oliva.athome.lsd.ic.unicamp.br> <m3sl7y3n63.fsf@localhost.localdomain> <or3azyquay.fsf@oliva.athome.lsd.ic.unicamp.br> <m3odim2kxc.fsf@localhost.localdomain> <orhcodol6o.fsf@oliva.athome.lsd.ic.unicamp.br> <10707091208.AA07438@vlsi1.ultra.nyu.edu> <469238A9.9010109@naturalbridge.com> <ormyy5lihr.fsf@oliva.athome.lsd.ic.unicamp.br> <de8d50360707090837w198a14dam2fa37fc2bdbc3e87@mail.gmail.com> <469257D6.4030605@gnu.org> <m3fy3x35g1.fsf@localhost.localdomain>
On Mon, 2007-07-09 at 09:30 -0700, Ian Lance Taylor wrote:
> Paolo Bonzini <bonzini@gnu.org> writes:
>
> > > I am going to argue that it was a bug that we did not allow new
> > > pseudos after flow had ran. And that we should have always allowed
> > > pseudos before the register allocator. Since flow was so broken, we
> > > could not, we added the hack no_new_pseudos get around that problem.
> > > Now we are saying it is a nice abstraction but I am saying this
> > > abstraction should never have happened in the first place. We now
> > > have a better compiler due to the removal of the hack.
> >
> > The bad abstraction was causing quirks in *when* no_new_pseudos was
> > set to 1. But no_new_pseudos is a good abstraction in itself, people
> > are arguing on whether it is a better abstraction as
> > "reload_in_progress || reload_completed".
>
> We've moved past that option, now we're arguing about using
> regalloc_started_p ().
I'm not sure why, and I think I agree with some earlier posters on this
issue. As a back-end author, the question of interest is just: can I
call gen_reg_rtx()? or must I make do with existing registers?
I don't care about which particular phases this is true or false, I just
need to know the answer to that question.