This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: no_new_pseudos
- From: Alexandre Oliva <aoliva at redhat dot com>
- To: Richard Earnshaw <Richard dot Earnshaw at arm dot com>
- Cc: Kenneth Zadeck <zadeck at naturalbridge dot com>, gcc <gcc at gcc dot gnu dot org>, Steven Bosscher <stevenb dot gcc at gmail dot com>, "Bonzini\, Paolo" <bonzini at gnu dot org>
- Date: Mon, 02 Jul 2007 17:42:41 -0300
- Subject: Re: no_new_pseudos
- References: <46892386.9080103@naturalbridge.com> <1183392984.3816.1.camel@pc960.cambridge.arm.com>
On Jul 2, 2007, Richard Earnshaw <Richard.Earnshaw@arm.com> wrote:
> On Mon, 2007-07-02 at 12:10 -0400, Kenneth Zadeck wrote:
>> I do not remember if it was stevenb or bonzini that observed that
>> because of changes that came with the dataflow branch it is now trivial
>> to get rid of no_new_pseudos. All of the sets can just go away, as well
>> as the tests of it that occur in passes that only run before reload.
>>
>> For those few passes that can run both before and after reload, the test
>> would be replaced with a test of reload_completed.
>>
>> I believe that the original purpose of this was to protect certain
>> datastructures that had to be resized manually when pseudos were added.
>> However, all of these are gone, and have been replaced with structures
>> inside of df that are automatically resized.
>>
>> Does anyone think this is a bad idea? A grep for no_new_pseudos bears
>> out that nothing is really going on here anymore.
> There are 199 uses of it in the backends; compared to 32 in the front
> end.
> So it is quite heavily used by MD code.
I recall having used it a number of times in expanders that shouldn't
create new pseudos during reload. These could easily be turned into
(reload_in_progress || reload_completed). Maybe we could turn
no_new_pseudos into a macro that expands to this?
--
Alexandre Oliva http://www.lsd.ic.unicamp.br/~oliva/
FSF Latin America Board Member http://www.fsfla.org/
Red Hat Compiler Engineer aoliva@{redhat.com, gcc.gnu.org}
Free Software Evangelist oliva@{lsd.ic.unicamp.br, gnu.org}