This is the mail archive of the
mailing list for the GCC project.
Re: Reload patch v5
- To: crux at pool dot informatik dot rwth-aachen dot de (Bernd Schmidt)
- Subject: Re: Reload patch v5
- From: Joern Rennecke <amylaar at cygnus dot co dot uk>
- Date: Wed, 16 Sep 1998 16:10:33 +0100
- Cc: egcs-patches at cygnus dot com, egcs at cygnus dot com
- Newsgroups: cygnus.egcs.patches
> * 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
> (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.