From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca (simark.ca [158.69.221.121]) by sourceware.org (Postfix) with ESMTPS id 0BCAB385B835 for ; Mon, 30 Mar 2020 15:46:21 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 0BCAB385B835 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=simark.ca Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=simark@simark.ca Received: from [10.0.0.11] (unknown [192.222.164.54]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by simark.ca (Postfix) with ESMTPSA id 948781E581; Mon, 30 Mar 2020 11:46:20 -0400 (EDT) Subject: Re: [PATCH 13/20] Change how reprocessing is done To: Tom Tromey , gdb-patches@sourceware.org References: <20200328192208.11324-1-tom@tromey.com> <20200328192208.11324-14-tom@tromey.com> From: Simon Marchi Message-ID: Date: Mon, 30 Mar 2020 11:46:20 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.6.0 MIME-Version: 1.0 In-Reply-To: <20200328192208.11324-14-tom@tromey.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US-large Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-24.9 required=5.0 tests=BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_DMARC_STATUS, SPF_HELO_PASS, SPF_PASS, TXREP, URIBL_CSS, URIBL_CSS_A autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Mar 2020 15:46:22 -0000 On 2020-03-28 3:22 p.m., Tom Tromey wrote: > Currently gdb keeps a vector of attributes that require reprocessing. > However, now that there is a reprocessing flag in the attribute, we > can remove the vector and instead simply loop over attributes a second > time. Normally there are not many attributes, so this should be > reasonably cheap. That sounds reasonable, it simplifies the code. > > gdb/ChangeLog > 2020-03-28 Tom Tromey > > * dwarf2/read.c (skip_one_die): Update. > (read_full_die_1): Change how reprocessing is done. > (partial_die_info::read): Update. > (read_attribute_value): Remove need_reprocess parameter. > (read_attribute): Likewise. > * dwarf2/attribute.h (struct attribute) : New > method. > --- > gdb/ChangeLog | 10 +++++++++ > gdb/dwarf2/attribute.h | 6 ++++++ > gdb/dwarf2/read.c | 48 +++++++++++++++++++----------------------- > 3 files changed, 38 insertions(+), 26 deletions(-) > > diff --git a/gdb/dwarf2/attribute.h b/gdb/dwarf2/attribute.h > index 972beef9825..9b387e5df05 100644 > --- a/gdb/dwarf2/attribute.h > +++ b/gdb/dwarf2/attribute.h > @@ -214,6 +214,12 @@ struct attribute > requires_reprocessing = 0; > } > > + /* True if this attribute requires reprocessing. */ > + bool reprocessing_p () const > + { > + return requires_reprocessing; > + } Nitpicking on names again: the method name sounds like we inquire whether the attribute is currently reprocessing (as if it was a lengthy operation). So I'd name it requires_reprocessing_p. Or just requires_reprocessing (I still find those _p suffixes for predicates odd). Simon