From patchwork Sat Nov 4 16:13:56 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 24097 Received: (qmail 72851 invoked by alias); 4 Nov 2017 16:14:04 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 72717 invoked by uid 89); 4 Nov 2017 16:14:02 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.8 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=Hx-languages-length:1213 X-HELO: gateway22.websitewelcome.com Received: from gateway22.websitewelcome.com (HELO gateway22.websitewelcome.com) (192.185.47.144) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sat, 04 Nov 2017 16:14:00 +0000 Received: from cm17.websitewelcome.com (cm17.websitewelcome.com [100.42.49.20]) by gateway22.websitewelcome.com (Postfix) with ESMTP id 8B80210DB for ; Sat, 4 Nov 2017 11:13:59 -0500 (CDT) Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with SMTP id B155eVdw3c72gB155eTVVB; Sat, 04 Nov 2017 11:13:59 -0500 Received: from 71-218-90-63.hlrn.qwest.net ([71.218.90.63]:32796 helo=bapiya.Home) by box5379.bluehost.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.89) (envelope-from ) id 1eB155-003mhN-A5; Sat, 04 Nov 2017 11:13:59 -0500 From: Tom Tromey To: gdb-patches@sourceware.org Cc: Tom Tromey Subject: [RFA 2/2] Simplify the psymbol hash function Date: Sat, 4 Nov 2017 10:13:56 -0600 Message-Id: <20171104161356.17565-3-tom@tromey.com> In-Reply-To: <20171104161356.17565-1-tom@tromey.com> References: <20171104161356.17565-1-tom@tromey.com> X-BWhitelist: no X-Source-L: No X-Exim-ID: 1eB155-003mhN-A5 X-Source-Sender: 71-218-90-63.hlrn.qwest.net (bapiya.Home) [71.218.90.63]:32796 X-Source-Auth: tom+tromey.com X-Email-Count: 4 X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes This patch simplifies the psymbol_hash function, by changing it not to examine the contents of the symbol's name. This change just mirrors what psymbol_compare already does -- it is checking for name equality, which is presumably ok because symbol names are generally interned. This change speeds up psymbol reading. "gdb -nx -batch gdb" previously took ~1.8 seconds on my machine, and with this patch it now takes ~1.7 seconds. gdb/ChangeLog 2017-11-04 Tom Tromey * psymtab.c (psymbol_hash): Do not hash string contents. --- gdb/ChangeLog | 4 ++++ gdb/psymtab.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/gdb/psymtab.c b/gdb/psymtab.c index f848990867..d22f70a0c0 100644 --- a/gdb/psymtab.c +++ b/gdb/psymtab.c @@ -1515,7 +1515,7 @@ psymbol_hash (const void *addr, int length) h = hash_continue (&lang, sizeof (unsigned int), h); h = hash_continue (&domain, sizeof (unsigned int), h); h = hash_continue (&theclass, sizeof (unsigned int), h); - h = hash_continue (psymbol->ginfo.name, strlen (psymbol->ginfo.name), h); + h = hash_continue (&psymbol->ginfo.name, sizeof (psymbol->ginfo.name), h); return h; }