This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Experimental post-reload life analysis
- To: Bernd Schmidt <crux at Pool dot Informatik dot RWTH-Aachen dot DE>
- Subject: Re: Experimental post-reload life analysis
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Wed, 07 Oct 1998 03:01:19 -0600
- cc: egcs-patches at cygnus dot com
- Reply-To: law at cygnus dot com
In message <Pine.SOL.3.90.981002152846.14944K-100000@jennifer.informatik.rwth
-aachen.de>you write:
> The patch below adds a small pass after reload_cse_regs that computes
> life information on hard regs and re-creates REG_DEAD and REG_UNUSED
> notes.
> This makes it possible to delete the following pieces of code:
> - everything dealing with PRESERVE_DEATH_INFO_REGNO_P
> - reload_cse_no_longer_dead and its friends
> - code in sched.c to deal with incorrect REG_DEAD notes
> - the reference to used_spill_regs in reorg.c (correct death notes
> are now available to achieve the same effect).
>
> The patch is somewhat tested (c-torture runs on i586-linux and
> sparc-sun-solaris2.6), but could use a bit more testing. Also, it
> absolutely depends on correct basic block boundaries: it will abort
> mercilessly if it finds insns between basic blocks. Please see my
> previous mail with the patch to caller-save.c before trying this one.
I'll send some (mostly positive) comments on this tomorrow (it's about 3am
right now, and I need to sleep :-)
One note though, with this patch installed, I got a successful bootstrap on
my i686-pc-linux-gnu box, but I get an abrot in reload_life_analysis
when compiling serial.c from the linux2.1.124 kernel.
I'll put together a testcase sometime tomorrow if you haven't already beat
me to it.
jeff