Experimental post-reload life analysis

Jeffrey A Law law@cygnus.com
Wed Oct 7 02:03:00 GMT 1998


  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




More information about the Gcc-patches mailing list