Reload patch v5

Joern Rennecke amylaar@cygnus.co.uk
Wed Sep 16 21:52:00 GMT 1998


> 	* 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.



More information about the Gcc mailing list