This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [Committed] Use special-purpose hash table to speed up walk_tree
- From: Steven Bosscher <stevenb at suse dot de>
- To: Jakub Jelinek <jakub at redhat dot com>, Matt Austern <austern at apple dot com>, mark at codesourcery dot com
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Sat, 16 Oct 2004 12:17:43 +0200
- Subject: Re: [Committed] Use special-purpose hash table to speed up walk_tree
- Organization: SUSE Labs
- References: <F96640A6-1E36-11D9-9854-000A95AA5E5E@apple.com> <20041016094708.GZ31909@devserv.devel.redhat.com>
On Saturday 16 October 2004 11:47, Jakub Jelinek wrote:
> On Thu, Oct 14, 2004 at 04:15:44PM -0700, Matt Austern wrote:
> > This patch isn't really as big as it looks. walk_tree allows you to
> > provide a hash table to keep track of which nodes have already been
> > seen. We were using htab_t, a general-purpose hash table with lots of
> > knobs for the client to tweak. This patch replaces it with a
> > special-purpose hash table that has no more functionality than
> > walk_tree needs. In particular, this special-purpose hash table
> > doesn't support deletion, doesn't give its client control over resizing
> > policy, and doesn't allow its client to specify the hash function or
> > equality function. (It just uses the values of the pointers
> > themselves.)
> >
> > Bootstrapped and tested (C, C++, Java) on powerpc-apple-darwin. This
> > gives a 2% speedup on building QT.
>
> But on x86-64-redhat-linux essentially makes even bootstrap impossible
> (well, I have killed it after it spent more than 10 minutes compiling
> insn-recog or insn-attrtab by stage1/cc1).
> hash1's distribution is less than perfect.
Ah, I was wondering why my bootstrap was so slow recently :-)
It would have been nice if this patch had been tested better. Good
for you, 2% on QT, but what are the effects on other code? And are
we in stage3 now or not? I did not see this idea on Mark's list of
things that would be allowed in.
And why did Mark approve this offline, isn't it the policy that a
patch is posted to gcc-patches and reviewed in public?
Gr.
Steven