This is the mail archive of the gcc@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: 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


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