From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from relay10.mail.gandi.net (relay10.mail.gandi.net [217.70.178.230]) by sourceware.org (Postfix) with ESMTPS id A90093851C2C for ; Fri, 16 Jul 2021 09:13:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org A90093851C2C Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=seketeli.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=seketeli.org Received: (Authenticated sender: dodji@seketeli.org) by relay10.mail.gandi.net (Postfix) with ESMTPSA id EBBFA24000C; Fri, 16 Jul 2021 09:13:13 +0000 (UTC) Received: by localhost (Postfix, from userid 1000) id 86FA5580101; Fri, 16 Jul 2021 11:13:11 +0200 (CEST) From: Dodji Seketeli To: Matthias Maennich Cc: libabigail@sourceware.org, gprocida@google.com, kernel-team@android.com Subject: Re: [PATCH, applied] Consistently use std::unique_ptr for private implementations (pimpl) Organization: Me, myself and I References: <20210705094529.2485114-1-maennich@google.com> X-Operating-System: Fedora 35 X-URL: http://www.seketeli.net/~dodji Date: Fri, 16 Jul 2021 11:13:11 +0200 In-Reply-To: <20210705094529.2485114-1-maennich@google.com> (Matthias Maennich's message of "Mon, 5 Jul 2021 10:45:29 +0100") Message-ID: <87zgumei54.fsf@seketeli.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-3.1 required=5.0 tests=BAYES_00, JMQ_SPF_NEUTRAL, KAM_DMARC_STATUS, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libabigail@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Mailing list of the Libabigail project List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Jul 2021 09:13:17 -0000 Hello, Matthias Maennich a =C3=A9crit: > In the absence of non-refcounting smart pointers before C++11, > std::shared_ptr was commonly used instead. Having bumped the standard to > C++11, allows us to use std::unique_ptr consistently avoiding any costs > involved with shared_ptr ref counting. Hence do that and add default > virtual destructors where required. Thanks for doing this! So, after testing on an old AMD machine, here is the difference in the time taken (as reported by the 'time' command) by "make check" between the master branch without the patch, and with the patch. Without the patch: real 3m41,260s user 10m44,672s sys 1m27,097s With the patch: real 2m7,102s user 11m48,024s sys 1m18,589s Pretty neat isn't it? :-) So thanks a lot for that! > > * include/abg-comparison.h (diff_maps): use unique_ptr for priv_ > (diff_context): Likewise. > (diff_traversable_base): Likewise. > (type_diff_base): Likewise. > (decl_diff_base): Likewise. > (distinct_diff): Likewise. > (var_diff): Likewise. > (pointer_diff): Likewise. > (reference_diff): Likewise. > (array_diff): Likewise. > (qualified_type_diff): Likewise. > (enum_diff): Likewise. > (class_or_union_diff): Likewise. > (class_diff): Likewise. > (base_diff): Likewise. > (scope_diff): Likewise. > (fn_parm_diff): Likewise. > (function_type_diff): Likewise. > (function_decl_diff): Likewise. > (typedef_diff): Likewise. > (translation_unit_diff): Likewise. > (diff_stats): Likewise. > (diff_node_visitor): Likewise. > * include/abg-corpus.h (corpus): Likewise. > (exported_decls_builder): Likewise. > (corpus_group): Likewise. > * include/abg-ini.h (property): Likewise. > (property_value): Likewise. > (string_property_value): Likewise. > (list_property_value): Likewise. > (tuple_property_value): Likewise. > (simple_property): Likewise. > (list_property): Likewise. > (tuple_property): Likewise. > (config): Likewise. > (section): Likewise. > (function_call_expr): Likewise. > * include/abg-interned-str.h (interned_string_pool): Likewise. > * include/abg-ir.h (environment): Likewise. > (location_manager): Likewise. > (type_maps): Likewise. > (translation_unit): Likewise. > (elf_symbol::version): Likewise. > (type_or_decl_base): Likewise. > (scope_decl): Likewise. > (qualified_type_def): Likewise. > (pointer_type_def): Likewise. > (array_type_def): Likewise. > (subrange_type): Likewise. > (enum_type_decl): Likewise. > (enum_type_decl::enumerator): Likewise. > (typedef_decl): Likewise. > (dm_context_rel): Likewise. > (var_decl): Likewise. > (function_decl::parameter): Likewise. > (function_type): Likewise. > (method_type): Likewise. > (template_decl): Likewise. > (template_parameter): Likewise. > (type_tparameter): Likewise. > (non_type_tparameter): Likewise. > (template_tparameter): Likewise. > (type_composition): Likewise. > (function_tdecl): Likewise. > (class_tdecl): Likewise. > (class_decl::base_spec): Likewise. > (ir_node_visitor): Likewise. > * include/abg-suppression.h (suppression_base): Likewise. > (type_suppression::insertion_range): Likewise. > (type_suppression::insertion_range::boundary): Likewise. > (type_suppression::insertion_range::integer_boundary): Likewise. > (type_suppression::insertion_range::fn_call_expr_boundary): Likewise. > (function_suppression): Likewise. > (function_suppression::parameter_spec): Likewise. > (file_suppression): Likewise. > * include/abg-tools-utils.h (temp_file): Likewise. > (timer): Likewise. > * include/abg-traverse.h (traversable_base): Likewise. > * include/abg-workers.h (queue): Likewise. > * src/abg-comparison.cc (diff_context): add default destructor. > (diff_maps): Likewise. > (corpus_diff): Likewise. > (diff_node_visitor): Likewise. > (class_or_union_diff::get_priv): adjust return type. > (class_diff::get_priv): adjust return type. > * src/abg-corpus.cc (corpus): add default destructor. > * src/abg-ir.cc (location_manager): Likewise. > (type_maps): Likewise. > (elf_symbol::version): Likewise. > (array_type_def::subrange_type): Likewise. > (enum_type_decl::enumerator): Likewise. > (function_decl::parameter): Likewise. > (class_decl::base_spec): Likewise. > (ir_node_visitor): Likewise. > > Signed-off-by: Matthias Maennich Applied to master. Thanks! [...] Cheers, --=20 Dodji