On Thu, 2006-12-21 at 11:55 -0500, Diego Novillo wrote: > Robert Kennedy wrote on 12/21/06 11:37: > > > The situation is that some SSA_NAMEs are disused (removed from the > > code) without being released onto the free list by > > release_ssa_name(). > > > Yes, it happens if a name is put into the set of names to be updated by > update_ssa. > > After update_ssa, it should be true that every SSA name with no > SSA_NAME_DEF_STMT is in the free list. > > However, if we have SSA names with no defining statement that are still > in considered active, I would hardly consider it a serious bug. It's a > waste of memory, which you are more than welcome to fix, but it should > not cause correctness issues. > > > Please discuss. > > > Test case? I think the discussion should begin with reevaluating whether or not the memory savings from recycling SSA_NAMEs is still worth the headache.
Turning on GATHER_STATISITICS ought to give you some information about the effectiveness of recycling. Then build some code (GCC source, particularly with ENABLE_CHECKING defined) with/without recycling and compare memory usage for SSA_NAMES (IIRC that memory use is broken out separately) before/after as well as total memory usage. Jeff