Release RTL bodies after compilation (sometimes)

Jeffrey A Law law@redhat.com
Wed Sep 15 16:53:00 GMT 2004


On Wed, 2004-09-15 at 06:30, Diego Novillo wrote:
> On Wed, 2004-09-15 at 07:32, Jan Hubicka wrote:
> 
> > What about renaming ggc_free to ggc_dead to make it obvious that one can
> > not "free" live data?
> > 
> It's not a matter of naming.  When you are expunging a basic block, you
> really consider it dead, but as we have proven, you don't really know if
> it's reachable from somewhere else.
Precisely.

And people can talk about whatever checks have been implemented to
ensure that "bad things don't happen", but as this case clearly shows
those checks are not sufficient.


> If we are holding onto too much unnecessary data in our algorithms, then
> the solution _ought_ to involve breaking the chains to the dead data so
> that we can collect all that garbage.  And the way of breaking those
> chains should simply be writing NULL to your pointers.
Right.  Now a good way to help find those cases would be a huge
step forward.  Right now I find them by noting the object which ought
to be dead, the setting conditional breakpoints in the marking
routines.  Needless to say that's slow and error prone and
doesn't scale well.

Jeff



More information about the Gcc-patches mailing list