On 04 July 2007 18:03, Ian Lance Taylor wrote:
> Richard Sandiford <[EMAIL PROTECTED]> writes:
>
>> Ian Lance Taylor <[EMAIL PROTECTED]> writes:
>>> Richard Sandiford <[EMAIL PROTECTED]> 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.
Fair enough.
Since it is still a derivative condition that depends solely on the
before/during reload status, maybe it would be cleanest to make a predicate
macro for it?
#define MAY_CREATE_NEW_PSEUDOS_P (!reload_in_progress && !reload_completed)
... if I wanted to write /really/ self-documenting to the point of excess
code, I'd probably even consider phrasing it as ...
#define BEFORE_RELOAD_P (!reload_in_progress && !reload_completed)
#define MAY_CREATE_NEW_PSEUDOS_P (BEFORE_RELOAD_P)
cheers,
DaveK
--
Can't think of a witty .sigline today....