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]

Re: Reload patch v5


> 	* reorg.c (used_spill_regs): Delete declaration.
> 	(max_label_num_after_reload): Likewise.
> 	(find_dead_or_set_registers): Don't assume spill regs are dead at
> 	CODE_LABELs.
...
> 	(used_spill_regs): Now static.
...
> 	Don't set used_spill_regs at the end.

This defeats the purpose of used_spill_regs.
If we can't use it anymore, we should look at a way to replace it.

The usual way to express that something dies is emitting a REG_DEAD note;
that would go at the last instruction that uses a reload.  We actually
do this already if PRESERVE_DEATH_INFO_REGNO_P is set.
So we could either set PRESERVE_DEATH_INFO_REGNO_P for all targets that use
reorg, and teach reorg that death notes are exact if
PRESERVE_DEATH_INFO_REGNO_P is true for a register.
We could probably speed it up by keeping track of emitted REG_DEAD notes
for a given reload register, so that in case of reload inheritance we
need not search for the note.

Or we could just remove all PRESERVE_DEATH_INFO_REGNO_P checks from
reload.c (i.e. making the code unconditional).  This would only
leave a small hunk of code in jump.c dependent on this macro.


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