This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH] Compact SSA version namespace when releasing the freelist
- From: Diego Novillo <dnovillo at google dot com>
- To: Richard Guenther <rguenther at suse dot de>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Thu, 05 Apr 2012 11:27:33 -0400
- Subject: Re: [PATCH] Compact SSA version namespace when releasing the freelist
- References: <Pine.LNX.firstname.lastname@example.org>
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
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?