From patchwork Wed Feb 9 13:20:36 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Thomas Schwinge X-Patchwork-Id: 50951 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 22F8F3857C4F for ; Wed, 9 Feb 2022 13:21:00 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from esa2.mentor.iphmx.com (esa2.mentor.iphmx.com [68.232.141.98]) by sourceware.org (Postfix) with ESMTPS id D77F23858D28 for ; Wed, 9 Feb 2022 13:20:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org D77F23858D28 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com IronPort-SDR: au+wW6qugWw+I2K5i0FugNkxulWzw48b+48gx/KYZG5rywLyO58kv206X7kvKOT98xxHYq0aV3 HQKs9/FDSp/zH7IeaBnoeRShczYhpycUdwUnd04eD/s1yNYGeY1zJXXP7Cc3lgVINd5S2mzJqW xrc4mOgZ9u2wexpfXrIwhUPaTy/9JTA2kuIW/U5Tq+VcoFoR6qzJlT0LeU37G62xyXYbTcKbOB I6qzu7cKBL31BvQ+QhvW+c5Zpu4MKhfSo6oiY6wfN96dfq31HE6EiLGnXr1bmpsKE9/HH8kDeZ 1GLAGpyr+ux8x/05tJs6r+xS X-IronPort-AV: E=Sophos;i="5.88,355,1635235200"; d="scan'208,223";a="71792769" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa2.mentor.iphmx.com with ESMTP; 09 Feb 2022 05:20:42 -0800 IronPort-SDR: dmlTkvwdDb+GgYNELZrFFhjtBSsM4fQ3ErU5sW5H7ljogUgAh5i1Xekgdg88AqkWEFudcO2PAw PZmQm0bvHRlq/3arO0EZ5d0Xh+Yb/n5WX8hmGBdXbZ76pK0PITAy0qrPmk4XjKxdPkFTrOTsd7 FYIA6ndaY9b4iIzDgXDGr7pnbGPIIH1KzyoMIuccSy93+wIWDArqvuH843aYKt5e4qQD+3Jl9f RHBl+5s9DXCwvsBIQQdbxoeHy0F8iOZqVhetwuxfEJDgQtyeo+myKJP6b5Z+Ee0jRm/cXsRlAW /Io= From: Thomas Schwinge To: Subject: Consider 'TDF_UID', 'TDF_NOUID' in 'print_node_brief', 'print_node' User-Agent: Notmuch/0.29.1+93~g67ed7df (https://notmuchmail.org) Emacs/26.3 (x86_64-pc-linux-gnu) Date: Wed, 9 Feb 2022 14:20:36 +0100 Message-ID: <87fsosmb17.fsf@dem-tschwing-1.ger.mentorg.com> MIME-Version: 1.0 X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) To svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) X-Spam-Status: No, score=-12.0 required=5.0 tests=BAYES_00, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE 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: 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+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" Hi! OK to push (now, or in next development stage 1?) the attached "Consider 'TDF_UID', 'TDF_NOUID' in 'print_node_brief', 'print_node'", or should that be done differently -- or, per the current state (why?) not at all? This does work for my current debugging task, but I've not yet run 'make check' in case anything needs to be adjusted there. 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 e655409cf9154ac72194dd55f7f80cb5ed3137fc Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 9 Feb 2022 12:51:39 +0100 Subject: [PATCH] Consider 'TDF_UID', 'TDF_NOUID' in 'print_node_brief', 'print_node' Running GCC with '-fdump-tree-all-uid' (so that 'TDF_UID' is set in 'dump_flags') and '-wrapper gdb,--args', then for a 'call debug_tree(decl)', that does (pretty-)print all kinds of things -- but not the 'DECL_UID': [...] (gdb) print dump_flags & TDF_UID $1 = 256 (gdb) call debug_tree(decl) unit-size align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7ffff75555e8 precision:32 min max pointer_to_this > used SI source-gcc/gcc/testsuite/gfortran.dg/goacc-gomp/pr102330-3.f90:10:3 size unit-size align:32 warn_if_not_align:0 context > (gdb) print decl.decl_minimal.uid $3 = 4249 In my opinion, that's a bit unfortunate, as the 'DECL_UID' is very important for debugging certain classes of issues. With this patch, there is no change if 'TDF_UID' isn't set, but if it is, we now use the same syntax as 'gcc/tree-pretty-print.cc:dump_decl_name', for example: unit-size align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7ffff75555e8 precision:32 min max pointer_to_this > used SI source-gcc/gcc/testsuite/gfortran.dg/goacc-gomp/pr102330-3.f90:10:3 size unit-size align:32 warn_if_not_align:0 context > Notice 'var_decl': 'i' vs. 'iD.4249', and 'function_decl': 'p' vs. 'pD.4227'. Or 'iD.xxxx', 'pD.xxxx' if 'TDF_NOUID' is set ('-fdump-tree-all-uid-nouid', for example). gcc/ * print-tree.cc (print_node_brief, print_node): Consider 'TDF_UID', 'TDF_NOUID'. --- gcc/print-tree.cc | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/gcc/print-tree.cc b/gcc/print-tree.cc index 0876da873a9..f2da5187293 100644 --- a/gcc/print-tree.cc +++ b/gcc/print-tree.cc @@ -139,7 +139,17 @@ print_node_brief (FILE *file, const char *prefix, const_tree node, int indent) if (tclass == tcc_declaration) { if (DECL_NAME (node)) - fprintf (file, " %s", IDENTIFIER_POINTER (DECL_NAME (node))); + { + fprintf (file, " %s", IDENTIFIER_POINTER (DECL_NAME (node))); + if (dump_flags & TDF_UID) + { + char c = TREE_CODE (node) == CONST_DECL ? 'C' : 'D'; + if (dump_flags & TDF_NOUID) + fprintf (file, "%c.xxxx", c); + else + fprintf (file, "%c.%d", c, DECL_UID (node)); + } + } else if (TREE_CODE (node) == LABEL_DECL && LABEL_DECL_UID (node) != -1) { @@ -284,7 +294,17 @@ print_node (FILE *file, const char *prefix, tree node, int indent, if (tclass == tcc_declaration) { if (DECL_NAME (node)) - fprintf (file, " %s", IDENTIFIER_POINTER (DECL_NAME (node))); + { + fprintf (file, " %s", IDENTIFIER_POINTER (DECL_NAME (node))); + if (dump_flags & TDF_UID) + { + char c = TREE_CODE (node) == CONST_DECL ? 'C' : 'D'; + if (dump_flags & TDF_NOUID) + fprintf (file, "%c.xxxx", c); + else + fprintf (file, "%c.%d", c, DECL_UID (node)); + } + } else if (code == LABEL_DECL && LABEL_DECL_UID (node) != -1) { -- 2.25.1