This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: no_new_pseudos
Richard Sandiford <richard@codesourcery.com> writes:
> Ian Lance Taylor <iant@google.com> writes:
> > Richard Sandiford <richard@codesourcery.com> writes:
> >> What about the earlier idea of keeping no_new_pseudos and making it
> >> equivalent to "reload_in_progress || reload_completed", either by being
> >> a macro or by being a variable?
> >
> > I would prefer to get rid of it and clean up afterward.
>
> So which of (1) and (2) from my message do think is best? Replace backend
> uses with "reload_completed" when doing so is safe, or consistently replace
> it with "reload_in_progress || reload_completed" throughout the backends?
The latter, followed by a cleanup. In many cases it can simply drop
out. In the current framework, the only cases where it needs to be
checked are in the move expanders.
That said, I would not object to a new global variable,
before_regalloc or may_create_pseudos or something like that, meaning
that it is OK to freely create new pseudo-registers. I don't like
no_new_pseudos because it is a negative flag and because of the
historical baggage that it carries.
I don't think we should get too carried away with the scope of this
change. For example, the MIPS backend only refers to no_new_pseudos
six times, and two of them can be deleted after this change is made.
Ian