This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: GCC still getting a lot slower
- From: Daniel Berlin <dberlin at dberlin dot org>
- To: David Edelsohn <dje at watson dot ibm dot com>
- Cc: Neil Booth <neil at daikokuya dot co dot uk>, "" <gcc at gcc dot gnu dot org>
- Date: Tue, 31 Dec 2002 19:14:28 -0500 (EST)
- Subject: Re: GCC still getting a lot slower
- References: <200212312237.RAA26788@makai.watson.ibm.com>
On Tue, 31 Dec 2002, David Edelsohn wrote:
> >>>>> Neil Booth writes:
>
> Neil> It's only going to get fixed by refusing a release until it's as fast
> Neil> as the prior one. Otherwise it appears that people just don't care
> Neil> enough that each release is 30-50% slower than the previous one.
>
> I strongly believe that we need to have performance goals for GCC
> releases, not just release schedules. Previously when people have
> complained about performance, the response has been that it is too late in
> the release schedule. Well, we're now in Stage 1 of development for GCC
> 3.4, so it definitely cannot be too late.
I agree.
>
> As a start, how about some comment about Daniel Berlin's
> Generational Copying Garbage Collector? Complaining about the problem and
> then ignoring developers who try to address the problem discourages
> further effort. It isn't perfect, but nothing in GCC is perfect. If it
> needs to be improved, the GCC developer community is invited to assist.
> Silence from the peanut gallery is abdication of moral authority to
> complain in the future.
I also submitted using the alloc-pool for et-forest stuff (and have some
more alloc-pool uses for basic blocks and edges) which also improve
compile time measurably due to locality improvements.
This is a small, simple change (all but 4 lines are simple name
substititions of pool_alloc for xmalloc and pool_free for free) that
hasn't been reviewed yet.
See http://gcc.gnu.org/ml/gcc-patches/2002-12/msg01017.html
As a side note, it also can be used to clean up all these free lists we
keep introducing.
The basic block changes are a net code reduction (in fact, it uses almost
half as much code, in addition to being faster), for instance. It also
moves crap off the flow_obstack.
[dberlin@dberlin gcc]$ cvs diff -u3p cfg.c|diffstat
cfg.c | 68
++++++++++++++++++++++++------------------------------------------
1 files changed, 25 insertions(+), 43 deletions(-)
>
> David
>
>