From patchwork Wed Jul 5 16:14:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Thomas Schwinge X-Patchwork-Id: 1803859 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Received: from server2.sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Qx4WT2bwzz20ZQ for ; Thu, 6 Jul 2023 02:15:17 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 56C053853D34 for ; Wed, 5 Jul 2023 16:15:15 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from esa3.mentor.iphmx.com (esa3.mentor.iphmx.com [68.232.137.180]) by sourceware.org (Postfix) with ESMTPS id BC6FD3856948 for ; Wed, 5 Jul 2023 16:15:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org BC6FD3856948 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com X-IronPort-AV: E=Sophos;i="6.01,183,1684828800"; d="scan'208,223";a="11004497" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa3.mentor.iphmx.com with ESMTP; 05 Jul 2023 08:15:02 -0800 IronPort-SDR: BpoBRRfuVJyToqtoYd/AfmF9akGygb0bzFBLbx6mFV5/zv2/+F4UOyo3ahhpwqhXLLlw+I4ThN 2v1K+8zL5Vz0PmaF0+YTuR54C3MkJTVnjkARRTrqUt6J3Nv2HxsAfDgdbogViFrTkdxn7142ZS tSuxBDfIxAexyRUSZagetQJAm+X37MDOpqq2QiYSFMtc1ExpnMKVUrY+256muU0gKxj7t/zxXK 3qHm6T0ZLGwWh47aN09o+RLW8/RJ5O672j3FA/2mWEWPTVF8wPAMvzwKljyYHPl+FugPZBEYxN TZU= From: Thomas Schwinge To: Subject: GGC, GTY: Tighten up a few things re 'reorder' option and strings User-Agent: Notmuch/0.29.3+94~g74c3f1b (https://notmuchmail.org) Emacs/28.2 (x86_64-pc-linux-gnu) Date: Wed, 5 Jul 2023 18:14:54 +0200 Message-ID: <87edlmtjwh.fsf@euler.schwinge.homeip.net> MIME-Version: 1.0 X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-15.mgc.mentorg.com (139.181.222.15) To svr-ies-mbx-10.mgc.mentorg.com (139.181.222.10) X-Spam-Status: No, score=-11.9 required=5.0 tests=BAYES_00, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org Sender: "Gcc-patches" Hi! OK to push the attached "GGC, GTY: Tighten up a few things re 'reorder' option and strings"? Grüße Thomas ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955 From 8751deeb7afdc8ece6a0645c8404f615144b1bd4 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 5 Jul 2023 15:34:56 +0200 Subject: [PATCH] GGC, GTY: Tighten up a few things re 'reorder' option and strings ..., which doesn't make sense in combination. This, again, is primarily preparational for another change. gcc/ * ggc-common.cc (gt_pch_note_reorder, gt_pch_save): Tighten up a few things re 'reorder' option and strings. * stringpool.cc (gt_pch_p_S): This is now 'gcc_unreachable'. --- gcc/ggc-common.cc | 18 ++++++++++++++---- gcc/stringpool.cc | 1 + 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/gcc/ggc-common.cc b/gcc/ggc-common.cc index 173ab64cb73..bed7a9d4d02 100644 --- a/gcc/ggc-common.cc +++ b/gcc/ggc-common.cc @@ -314,6 +314,9 @@ gt_pch_note_reorder (void *obj, void *note_ptr_cookie, data = (struct ptr_data *) saving_htab->find_with_hash (obj, POINTER_HASH (obj)); gcc_assert (data && data->note_ptr_cookie == note_ptr_cookie); + /* The GTY 'reorder' option doesn't make sense if we don't walk pointers, + such as for strings. */ + gcc_checking_assert (data->note_ptr_fn != gt_pch_p_S); data->reorder_fn = reorder_fn; } @@ -636,12 +639,19 @@ gt_pch_save (FILE *f) state.ptrs[i]->reorder_fn (state.ptrs[i]->obj, state.ptrs[i]->note_ptr_cookie, relocate_ptrs, &state); - state.ptrs[i]->note_ptr_fn (state.ptrs[i]->obj, - state.ptrs[i]->note_ptr_cookie, - relocate_ptrs, &state); + gt_note_pointers note_ptr_fn = state.ptrs[i]->note_ptr_fn; + gcc_checking_assert (note_ptr_fn != NULL); + /* 'gt_pch_p_S' enables certain special handling, but otherwise + corresponds to no 'note_ptr_fn'. */ + if (note_ptr_fn == gt_pch_p_S) + note_ptr_fn = NULL; + if (note_ptr_fn != NULL) + note_ptr_fn (state.ptrs[i]->obj, state.ptrs[i]->note_ptr_cookie, + relocate_ptrs, &state); ggc_pch_write_object (state.d, state.f, state.ptrs[i]->obj, state.ptrs[i]->new_addr, state.ptrs[i]->size); - if (state.ptrs[i]->note_ptr_fn != gt_pch_p_S) + if (state.ptrs[i]->reorder_fn != NULL + || note_ptr_fn != NULL) memcpy (state.ptrs[i]->obj, this_object, state.ptrs[i]->size); #if defined ENABLE_VALGRIND_ANNOTATIONS && defined VALGRIND_GET_VBITS if (UNLIKELY (get_vbits == 1)) diff --git a/gcc/stringpool.cc b/gcc/stringpool.cc index 46aff39d7d5..8658e6ab52a 100644 --- a/gcc/stringpool.cc +++ b/gcc/stringpool.cc @@ -185,6 +185,7 @@ gt_pch_p_S (void *obj ATTRIBUTE_UNUSED, void *x ATTRIBUTE_UNUSED, gt_pointer_operator op ATTRIBUTE_UNUSED, void *cookie ATTRIBUTE_UNUSED) { + gcc_unreachable (); } /* PCH pointer-walking routine for strings. */ -- 2.34.1