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: new register allocator and HARD_REGNO_CALL_PART_CLOBBERED


Hi,

On 15 May 2003, Alexandre Oliva wrote:

> > namely that some register parts will be destroyed, instead of an
> > abstraction like HARD_REGNO_CALL_PART_CLOBBERED.  At least for clobbers
> > which can change per call.
>
> Clobbering a subreg will still affects the entire register,

Yes, you have to define clobbering parts of hardregs.  Possibly by
allowing clobbering of zero_extract's, or normal subregs.

> if BITS_PER_WORD is defined properly, so this is not an option.
> Besides, you don't want to pollute calls with clobbers, otherwise why
> would we have CALL_USED_REGISTERS in the first place?

And I had designed this half-clobbering exactly like CALL_USED_REGISTERS,
instead of creating the HARD_REGNO_CALL_PART_CLOBBERED macro which says
for a mode to not be placable into these and those hardregs over calls.
Well, whatever, I guess we have to live with this now.

I was also talking more about what you speculated about, namely that the
set of partly clobbered regs changes per call instruction.  For that you
anyway have to tack something to those insns, like already can be done
with CALL_INSN_FUNCTION_USAGE.  It just has to be extended to the notion
of partial hardregs.


Ciao,
Michael.


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