[PATCH] Compact SSA version namespace when releasing the freelist

Diego Novillo dnovillo@google.com
Thu Apr 5 15:27:00 GMT 2012


On 4/5/12 6:13 AM, Richard Guenther wrote:
>
> Currently we release the memory for released SSA names (which we keep
> around on a freelist, mainly to try to keep the SSA version namespace
> dense) after early optimizations.  This has the negative impact
> (as documented) of permanently establishing holes in the SSA version
> namespace.  The following patch fixes this in a simple way.
>
> Bootstrapped and tested on x86_64-unknown-linux-gnu.
>
> If you build fold-const.c with -O2 the distribution of released
> ssa names / removed holes is as follows:
>
> 43 release_ssa "SSA names released" 34900
> 43 release_ssa "SSA name holes removed" 34900

Could you elaborate on what this output means?  What is 43?  What is 34900?

> which means we never have "trailing" released SSA names, all SSA
> names on the freelist are for holes.  The following is the
> distribution over releases happening per function:
>
> 43 release_ssa "SSA name holes removed == 0" 16
> 43 release_ssa "SSA name holes removed == 1" 13

Likewise here.  What does this output mean?


> We seem to have quite some "dead" functions in fold-const.c ;)
>
> I didn't measure any off-noise memory/compile-time effect of this
> patch though.

I ask because I don't understand these two conclusions.  You're saying 
that we don't do a lot of this, so compile-time effects should be nil?


Thanks.  Diego.



More information about the Gcc-patches mailing list