This is the mail archive of the gcc-patches@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: PATCH to remove unnecessary NOTE_INSN_DELETED


  In message <19991103152446L.mitchell@codesourcery.com>you write:
  > 
  > Here's a patch which reduces memory usage by about another 5% on some
  > of our large test-cases.  It removes NOTE_INSN_DELETED notes at the
  > start of rest_of_compilation.  It also renumbers instructions so that
  > tables indexed by INSN_UID are not so sparse.  (Measurements showed
  > that only about 20% of the INSN_UIDs were used after jump, for
  > example.)
Cool.  We will likely want to tweak the heuristic to determine when insn
squashing is useful.  But that's easy to do.  For debugging purposes we
probably want a flag to turn off UID squashing.  Imagine trying to find
one particular insn in one of those dumps after its uid gets reordered.

I don't remember the usage rates from my experiments other than the
use rate was less than 50%.  So 20% seems plausible to me.

BTW, it's also possible to do regno squashing; those tend to be sparse too.
This isn't particularly difficult either (you change the regno array
directly), except that you have to remember to go fix the REGNO_POINTER_FLAG
and other arrays that are held outside the REG rtxs.

The major benefit of reg squashing is reducing the size of the conflict matrix
in the register allocators (it's square on the number of pseudos).

jeff


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