From patchwork Tue Jun 7 21:43:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Faust X-Patchwork-Id: 54921 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 9C9ED395253A for ; Tue, 7 Jun 2022 21:49:33 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9C9ED395253A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1654638573; bh=rQzx1R3/5q4KU7xNK6OH00x+R3vOwjSFWmudDqQRFe8=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=pnbdYDBvI0vU0Atrjkp44FcPN/wJgqktJrvgqttzPzfuTF9nAOsof28WvO+RJNmpb LXknNirYTG4H47+8YBXyzK0pTajV1JauSH2KMZyB1civx3j9hM5SEuIQ0kZnsqmMbp bvt6cmWYxJ7GFfjyinyFO/g7lzMATplvweWoPBxo= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id AAD943954441 for ; Tue, 7 Jun 2022 21:44:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org AAD943954441 Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 257IDmgA005933; Tue, 7 Jun 2022 21:44:08 GMT Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3ghexecbfu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 07 Jun 2022 21:44:08 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 257Ldwb0016135; Tue, 7 Jun 2022 21:44:08 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2171.outbound.protection.outlook.com [104.47.59.171]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3gfwu31y54-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 07 Jun 2022 21:44:07 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=C0AY5SYRBN7HRiBwZQym5MMG0HO2m4K0H8HTwLNyYOxGvAO3jH6635LmEhB5az0oLUzJmmWS0LZCgb0FC8E17wQRjjtDBy6fa7Q7QeeXCGyBz98PwphNe+8fK12VXJJRo0M5Q2d6Y+oCSR78hZ1Jf9Cd7UDJOc7DlcMZHtrVPzm7UmtstBBQeMVlMadkThfQY2JWtsl13z1NnIHRBaBTls7MHS9V6KhNlcF7fI2fAERon45lTZ1dy+uKzOcTpMA+8ynYzYM8HSOC53kl5Cs7SANcR5M89oTPlRjsRbXE+bptZxrPTcPysydSK4m3v3aJlDlaT9Z6/CGMFQIV76dVxg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=rQzx1R3/5q4KU7xNK6OH00x+R3vOwjSFWmudDqQRFe8=; b=IHZjohFiT27U9eKy6PstYMIow/aoc2Lk2zqw+MdEk8Yibs4a5l/VJUDeF24nEVV+U3iNqmlWnT03YWzfsyhdABPHJVy2Fa2iDucIUdpxSOu0UJRp80vQy8o15bZfUlcm5gGJ3puB2fi6dPdy1V0jV1xON37chNqY8A8EWiE/KXzrXAIS6rq60ir6GWfTnu3hkjuX5xCsslwaCBKwMQ1cWOtERy9Hfk+Xk3ULF9WzsJvJ9Sw2MDaaex4IPNxf7VeQJzm/m700uMY16igMmCP+LXNv8DQk4Uy1qt0uB460+BW0dKZcB0OGkac2h8cIXa6RjufSAQNJgadiCenP84vR/w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none Received: from MN2PR10MB3213.namprd10.prod.outlook.com (2603:10b6:208:131::33) by BN0PR10MB5351.namprd10.prod.outlook.com (2603:10b6:408:127::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.12; Tue, 7 Jun 2022 21:44:07 +0000 Received: from MN2PR10MB3213.namprd10.prod.outlook.com ([fe80::4939:15e0:57cb:87fb]) by MN2PR10MB3213.namprd10.prod.outlook.com ([fe80::4939:15e0:57cb:87fb%5]) with mapi id 15.20.5314.019; Tue, 7 Jun 2022 21:44:07 +0000 To: gcc-patches@gcc.gnu.org Subject: [PATCH 7/9] btf: output decl_tag and type_tag records Date: Tue, 7 Jun 2022 14:43:40 -0700 Message-Id: <20220607214342.19463-8-david.faust@oracle.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20220607214342.19463-1-david.faust@oracle.com> References: <20220607214342.19463-1-david.faust@oracle.com> X-ClientProxiedBy: DM5PR11CA0003.namprd11.prod.outlook.com (2603:10b6:3:115::13) To MN2PR10MB3213.namprd10.prod.outlook.com (2603:10b6:208:131::33) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a92830fd-f559-4dd3-b21d-08da48ced911 X-MS-TrafficTypeDiagnostic: BN0PR10MB5351:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: HL2ymTC9Gejgv2TQHIemrS59jT3zcEaFNJEDT1Q3OBzKMcQ0+OC/67umlks/pBiKApcjL7jimtYZzmFKDVyvshmXPapLDfY2i87ESetfIaXKxqPcMGnB74qHOHTkPUUFM0cdTMqMT/eOPcFS4Te/l55UXLjM6Nu6dlJQy+y4znDyoGmg6BKu8oF6gUdaQ1Tw0WS7xr6F/ziz9HrTkqQWkr1nLLO6lbLF2hIP94/D53XwPNXOh/381uI2J4zrM6JqMCMxQ9mrRf+m3QK/bfRQzWdrnSVSPfpPGoQbKB9VL8dS6cy4HQ5308U4Z+/yChP+NpkHtHnA8NgMBE8TqJxSD8BVXO1lZhMwqjeab2Dq2SQXyBQxUItB45cpqD9/Hw1q0Al9muRGy9hp8EH+LXYwdUV8xzGOtep1+EfcqqRETTwQL1DkB5EUha0aw0YsO0N1H5doxpCjK5EVJTuc0ht9imLsyKLPOd2ON+nWQjDaSI8d5aPv/Rp7erxQ+WKJXdPX1Lcrm5r57o6IyB4kVqk7KQx023BVSYKcqDJjCv3wgMTnCTdlAZCuIJeSRCPwmouEK7ecLzCI1k/ax/s8LTbpJ1dlOJ6xOEGaUHEXbOeTKdMXHk28riKPGFNttsP2GLljCC3n6HzznDAIGWiNxxaYmQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR10MB3213.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(508600001)(36756003)(6916009)(8936002)(1076003)(5660300002)(6512007)(2616005)(2906002)(66946007)(86362001)(38100700002)(83380400001)(66556008)(66476007)(316002)(6486002)(44832011)(8676002)(4326008)(6666004)(6506007)(186003)(52116002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: xpx1IixdxlIXnGHt1XI5XVWA5hddo96RGIfH/xhSXFPjLHLqFP8qOgMprg4G64erYnzrs5T3dqezo9enOoPwt6ErFv38GHuy44PIieSbbxcg1PYfdddDoWapTJ/unA3QURcaDX/K7j+Ow11p6vcEVN2fO8YyfIzU5gVaf9aTT5No94lc1VTlHucG0C8U8p0k75IIEXlgk6JhtqYcn27e+zHLWpsSiaKsW2UHMmSl3U9lO+N+LiTp796Uib1Hvoyhoz13WNV8gDa/PkeF6qeY8jELeSyk5TaQMFaWljDxKuwo+vXK0vSf0XKoKq3yAcQaXeSQ48jlRFNuPP6XMvxmZR1oZPc/O6zEjvxZ5pPAspAIOT7s4m7HAKvWP2tHY5sNi1WK8IM4MhdtbFqaEPnKF5/ZJ6HphjRsuZrullweZvGHx0klH64wSgdre78Q9OYpmKOuVy6Ou319pzcB3bXpO2yY/QEvpLZSEBwPTPoibQpHn1FQL+VZTrzlpxA/PzngPbYf19pp3Qp02qt0PnwWcxM+ZDxHSxmP/c0/wwz3QARyUUeNfUnm4LlH0qSkl8QQZpVfVc2ZKAYnfwBxo65AVXeCLnJH1b3SIFrMg82/YhEprjr8HW6pBmUSW1okhHMBjdb9AhYemUVl6Wgn8KSCM7+ijq4X6aGmK8lrTHUo1GrtLkHHVswhIKYXsVUNM1iGpcYCm+79b0Hsl/0C/VklRJFTxV7QaluFxGVzRBpWkTWNXkM2InzYDt+LUezVOr7VXtCYgF0xKdWIqzuan/6RWWhlzOiagyOWvPa/HwTSdh9P1lRAARKCfAkaQkBYxWIaVbxASy9tJpi098T5MfW8m+m0tNt4l3+JGboH9yokf9PD3oNfLL4VJwFPg7mRZC2UlMMeJXdvzeRXeVxnrMEajeXZgsSOm7GFdwtCwOE4OLPLCE0H5UP9tAjNdj0hNRxZN2bFtEqzaYLC7ZUsHiQBwD5LxwVaNMmbhCTEykBaZMr0SuH5nFEv3+n3jST08puRS4Kbq8BF5cK21ciInSilUcXbWjiCom68lPoSkIpVc5si+26yO5/ouNAsMls9NEHOBO/52/SXKGzqP3qWflXMaO6zfVeVcDeSJM/2XTg6dmKe2qPKqt0lmhRK45t1S/S3Mqb2gWzeLq4xW+5NJzGXvJ+YeTil+hL4M1znsK2jKA5Hpu8ots787S6d+KX44WlJCOb6nPoKl58VGk/RridUJx9PVTYEfda8U68i7aLdY5hn0+yqDKRspLjnms9VEsWbu+xXEgZULZcdKSsmokyESn7Ey2JyX/DZmFpigS0Dl8LboWC1fE4WYX89y9+zbc8pS60+7EE18o7w1lfIZEc36vQBzDdXa/3SmXw0ERZ9GnVHNFK6XaHNBB0tEhsEbWL41HBYxXBy/medz8pv6OZ5aSlvCwNQSQ0H8klwcc2XRNG0tPAEUWfQrxJnv0BLm4BDQXN91k6wg5v3z6H65piHBEorK8+4k69dPgMmWTdwaN+GUMG1ePVzjrcuR5bM5D69CBw/yqNdywYDMeIYCYsMQ14sfiW4lvA4YIK5/7mWJQ3dydBZU968ymSDuxHJEUMJQ9hsNCP0csJe6AD6Xd/jiCujIy1L+LHfDw7cSobhP8lBjZvnsJjFZCbT9++rADSGBRHbcHy/JYbmUt/dzqGlnNfAb395MjzwleuxL3YUsJ4Vg59xrviKeuKkJiP1w3ydR2l75liG7YY4LWWE2sEvtU/a4lUSKLbtDHWkuy5CC+qQwG45TB0Ad7z8WSAHu8Fk X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: a92830fd-f559-4dd3-b21d-08da48ced911 X-MS-Exchange-CrossTenant-AuthSource: MN2PR10MB3213.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jun 2022 21:44:07.0031 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: dRvddfN2IKxiDQrJtaQa1kdLE+XCcaEl8Ry9OE6sF3J8rilydEMM6OM4nDrIknovZQuT9/Q3uHvULQEDmhfS1Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN0PR10MB5351 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.517, 18.0.874 definitions=2022-06-07_10:2022-06-07, 2022-06-07 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 mlxscore=0 adultscore=0 spamscore=0 suspectscore=0 bulkscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2204290000 definitions=main-2206070089 X-Proofpoint-GUID: v3UrLDGIuEqn7UbY2E_bIMxhDAem0Tui X-Proofpoint-ORIG-GUID: v3UrLDGIuEqn7UbY2E_bIMxhDAem0Tui X-Spam-Status: No, score=-12.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NONE, 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: , X-Patchwork-Original-From: David Faust via Gcc-patches From: David Faust Reply-To: David Faust Cc: yhs@fb.com Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" This patch updates btfout.cc to be aware of debug annotations, convert them to BTF_KIND_DECL_TAG and BTF_KIND_TYPE_TAG records, and output them appropriately. gcc/ * btfout.cc (get_btf_kind): Handle TYPE_TAG and DECL_TAG kinds. (btf_calc_num_vbytes): Likewise. (btf_asm_type): Likewise. (output_asm_btf_vlen_bytes): Likewise. --- gcc/btfout.cc | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gcc/btfout.cc b/gcc/btfout.cc index 31af50521da..f291cd925be 100644 --- a/gcc/btfout.cc +++ b/gcc/btfout.cc @@ -136,6 +136,8 @@ get_btf_kind (uint32_t ctf_kind) case CTF_K_VOLATILE: return BTF_KIND_VOLATILE; case CTF_K_CONST: return BTF_KIND_CONST; case CTF_K_RESTRICT: return BTF_KIND_RESTRICT; + case CTF_K_TYPE_TAG: return BTF_KIND_TYPE_TAG; + case CTF_K_DECL_TAG: return BTF_KIND_DECL_TAG; default:; } return BTF_KIND_UNKN; @@ -201,6 +203,7 @@ btf_calc_num_vbytes (ctf_dtdef_ref dtd) case BTF_KIND_CONST: case BTF_KIND_RESTRICT: case BTF_KIND_FUNC: + case BTF_KIND_TYPE_TAG: /* These kinds have no vlen data. */ break; @@ -238,6 +241,10 @@ btf_calc_num_vbytes (ctf_dtdef_ref dtd) vlen_bytes += vlen * sizeof (struct btf_var_secinfo); break; + case BTF_KIND_DECL_TAG: + vlen_bytes += sizeof (struct btf_decl_tag); + break; + default: break; } @@ -636,6 +643,22 @@ btf_asm_type (ctf_container_ref ctfc, ctf_dtdef_ref dtd) dw2_asm_output_data (4, dtd->dtd_data.ctti_size, "btt_size: %uB", dtd->dtd_data.ctti_size); return; + case BTF_KIND_DECL_TAG: + { + /* A decl tag might refer to (be the child DIE of) a variable. Try to + lookup the parent DIE's CTF variable, and if it exists point to the + corresponding BTF variable. This is an odd construction - we have a + 'type' which refers to a variable, rather than the reverse. */ + dw_die_ref parent = dw_get_die_parent (dtd->dtd_key); + ctf_dvdef_ref dvd = ctf_dvd_lookup (ctfc, parent); + if (dvd) + { + unsigned int var_id = + *(btf_var_ids->get (dvd)) + num_types_added + 1; + dw2_asm_output_data (4, var_id, "btt_type"); + return; + } + } default: break; } @@ -949,6 +972,11 @@ output_asm_btf_vlen_bytes (ctf_container_ref ctfc, ctf_dtdef_ref dtd) at this point. */ gcc_unreachable (); + case BTF_KIND_DECL_TAG: + dw2_asm_output_data (4, dtd->dtd_u.dtu_btfnote.component_idx, + "decltag_compidx"); + break; + default: /* All other BTF type kinds have no variable length data. */ break;