From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id 62F4838582B7 for ; Tue, 11 Jul 2023 21:58:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 62F4838582B7 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=oracle.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=oracle.com Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 36BIDENI016388; Tue, 11 Jul 2023 21:58:52 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-03-30; bh=QmMN5QThp3uIXXaGEwuE07ZrXS41ZpCurzPBjhqwCEw=; b=lD4zvC22a+dGIOj/7ur5Pgv89Dbw2isj3u7IC6Bf+v8M55br1RnmYBvp+7B9L5T0UClL TMyC6kjhp0UtJNt4QPjNJzSwm2Uuglul+2H4Gs3hYQrJfEqM/NGLKe9faKsDIx5iAZCn uZT3mCmSgfeGAeWJUSv2QBY3r5jhvjNhXZ4xpSVpOja4oljB7kYazNHhBJ1mkLcivEfy 5bYeLBS67r+vNf/AyeqzjBTvkiaNihzhHXpYNxNjYSZPVIUQy1FbfD8ae1N/9QlbtxYX j38IekztPCeLffr3Pq6uUTA296AJSV0vZV3sGLUkkozHT2X5Viek8mTclXhFtSscknuk 0g== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3rr8xumfn7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 11 Jul 2023 21:58:51 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 36BLw8RK027105; Tue, 11 Jul 2023 21:58:50 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam02lp2046.outbound.protection.outlook.com [104.47.56.46]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3rpx85hhuw-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 11 Jul 2023 21:58:50 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZPO1FnZW5feGwPunIdrCfagZzNR305sROy2DA8dXid6Cw7aUwZDrmP3dC8fGlrUJjNK5Map3sqtseZFEezeqoESGyfrDngeO+Cg5J1GTPWJ5TV/jwx0Z+vitWO7X3/jx8LwsmcjUcATQ1YbESYSEHKbpLJOHyIfTUSyhMiXpz+97VMLdu0psE+rZWZVjaywzGUp3pQBOHTneFizjGGUxalU8Pq7/ggfrCsEvAgnuAspAxhoZK9EyxjbR/yLPijoMKwOoV7gmHrhyEo2BaMDn/m0/UbWhJGqE7wSn2g+leF2uRBR+k9px32lV4RsKhzpdsBw2lChrcnIr8ZHvWRxveQ== 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=QmMN5QThp3uIXXaGEwuE07ZrXS41ZpCurzPBjhqwCEw=; b=iq29HjE4BdAc0iOt7U+1rCnQqe8WLHEFcWrh/6gRAnGKHmFCgAdVZX0w06HBfQOQi4an9e7/Zc/RdnrXIR4MKP4RjrHTWZRyOpx0LC3jscNtV0OqOTtsaSnUrV/IGPJ5qaRYuB9a2c8chIwY5SGSnjtmeejrR0pU6VgfUGg6XFZeNwerOFxjLQXggK77xKHsU5ellyHy+20VfQmHR59ZSkR3rgEUymlZcwabBmREf6w5DEC24i2jFpFqjpKA/O0iGovQkM1iPCQMgWT9jVLhTShqednQUWDHKjClPXgTVpCnxD16KdkS5qrfVvYKlhPbK6Fu/Q5jTehDTARaDPr4Xw== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QmMN5QThp3uIXXaGEwuE07ZrXS41ZpCurzPBjhqwCEw=; b=a3k7bxHu1mqTlZ7tPfBil7TR5Cm59sq/Slhd93ygrEqkHiWHjq90eddjFOnWCPJW5EJFmVdHs2uuWFpi0f7AXUUWSQ+w/rJG5H2c2uQ7ERS9bU7yUccarUq7HCGVa8DCJhCPX1/LoQ/ZnjDqeIrsDGhwVZTb3UlcM0iongUbZoI= Received: from MN2PR10MB3213.namprd10.prod.outlook.com (2603:10b6:208:131::33) by CO6PR10MB5650.namprd10.prod.outlook.com (2603:10b6:303:14f::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6565.30; Tue, 11 Jul 2023 21:58:42 +0000 Received: from MN2PR10MB3213.namprd10.prod.outlook.com ([fe80::1797:59c3:a40e:f8ab]) by MN2PR10MB3213.namprd10.prod.outlook.com ([fe80::1797:59c3:a40e:f8ab%4]) with mapi id 15.20.6565.028; Tue, 11 Jul 2023 21:58:42 +0000 From: David Faust To: gcc-patches@gcc.gnu.org Cc: jose.marchesi@oracle.com, yhs@meta.com Subject: [PATCH 5/9] ctf: add support to pass through BTF tags Date: Tue, 11 Jul 2023 14:57:12 -0700 Message-Id: <20230711215716.12980-6-david.faust@oracle.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230711215716.12980-1-david.faust@oracle.com> References: <20230711215716.12980-1-david.faust@oracle.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: SN1PR12CA0044.namprd12.prod.outlook.com (2603:10b6:802:20::15) To MN2PR10MB3213.namprd10.prod.outlook.com (2603:10b6:208:131::33) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN2PR10MB3213:EE_|CO6PR10MB5650:EE_ X-MS-Office365-Filtering-Correlation-Id: 7d258585-2d81-4336-c227-08db8259fd68 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: pOTHuI5NaMcVmxeq7hkbh3MxAN0hACx/q8fgHZNHG5YMUgvOhqh9rxG38tOcyQMPXtp/BnXJDfk3bRGZVeqRLiJOVZC+uH/Oi4R64lkOoKu5U3FhID04F+nbDoQmaZOPenEcUSL+ttFmg/xZC8szH3bIirP3HrSKG4AZsB1UuJ33uxmboOAYGF7+bBStpVP9+971AiBevwHQTssLxQVNFPWvUDd/cDHZIaLNlCQemzbwhuiRSrXfdrYtVyWtTnQpZocXOSFaFGkv97BsPdBTZRfhRFGZfeGs2qugyxeeW6wWW8HFCx/sYN+wjz2Nt7bXKmk7iXS8SsR13etCpR4XBWqXO0Zk/xNLgcE6TnrHjoi6035LtIsqVVksn0TX8Tiy6NXEzPE2OOYQtJCYxJWKuUApWbZzTPFTYEUmaiZU9t/6QbijoJriQUNXwpxeetuWod+/P/Ttrho7/OkzJ6T7p5KxJsoof3RhySWrWGpYWbsaftQ/dsvy+B9SSxJ+FLg9fZJ7gJZA613qpm/qveTccuQw8C4xZGT7PQ67MM9/rDaM7LeJLkpbWwM+7/RV6f29idP1iOQuDPEbLQEulyf3LQuhXsMfHkKfOB1TsfWC6Fs= 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:(13230028)(39860400002)(346002)(136003)(376002)(396003)(366004)(451199021)(86362001)(38100700002)(36756003)(6486002)(6666004)(6506007)(26005)(186003)(1076003)(6512007)(2616005)(5660300002)(2906002)(316002)(66556008)(66946007)(66476007)(8676002)(44832011)(8936002)(83380400001)(4326008)(478600001)(6916009)(41300700001)(2004002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?0c4iREBT0LAE7hMXd84UU1w1kvaRMvDnutdxMjp9XqSA3QzGj1PTP3S9Mh0E?= =?us-ascii?Q?+AwVyoXbH9Ov2zUHxTVJNx7ZzDK2ZkX+XvdrGdaBHMR3ZoZJQ/BdvTehbeGw?= =?us-ascii?Q?/PK50pvYPcXqHzxyMi0S6x2Ko6yOmpeVabvX5wynWJ2Qz9pXCFxJrF6ZqXGk?= =?us-ascii?Q?aKNwqu6VUJqeFRJU8djZ0BJjdD/AEo5EF7XEH0nIMpAaPtrSbZS8hkwdt6b7?= =?us-ascii?Q?1wMRaD6x1qSTi8Cg5uMRseys5FnqbF0cyoIaTtP8AJ7JiyrdpdiRqTNBbdBE?= =?us-ascii?Q?wln7GMggARIFD+ox+Wngk2kFaJbILPmRfCrpHKoOII3iYvPDJSdwvieLIPDi?= =?us-ascii?Q?xM1nTlCH/A3PZvRhcvWnSKN97vFZfWjuoo+mA4TDlfOgqfcnuG8dgXccvuEu?= =?us-ascii?Q?jeJgJf3el9AcO8+0gbZ8Vb55oa2NysDhPgnkWJu9asu6aAY9kFpmOs0DteVH?= =?us-ascii?Q?GaXms+PhEVrm9GRsEXDAXDIKddlv5LInolcSPnDntCpQcKKIj9NGfFghQRN3?= =?us-ascii?Q?hDstDqmH8iR7w0+Izmzyd41AYRQp1yOcaFvQPn+flmnsxM2pi7uudrV8X446?= =?us-ascii?Q?By6JCcy0M2jInJDHcYhTarjCl4iILi5EoqLnsk5QpPS55eS6DmmBrd2Ah/hi?= =?us-ascii?Q?aF4PnWmf8Ky3/t+EXUzoAN2uYWacOGV9i25sqEgt4vX40ekpDjPPRNA0dX/l?= =?us-ascii?Q?/mxM+4nP4EKYPI//SfuLFpt1fsSJjSiKaQ711loyQmRMWztcfdTJixVbJvNG?= =?us-ascii?Q?XSf+AJ4idPtQEFFKZxS3D4Mr3N0u1eYth8eiXlDA+KQAbXZWTz8GMbNExcQb?= =?us-ascii?Q?Kl80jI8GzC997oyZ+wwfQpboRFoML+7MOKMJKtlqHTOF9KovAy9oF+BH6r3G?= =?us-ascii?Q?+yjpGXTM+5uvQRBCxx8dPjXWv+4Gvj6RgB03TiFu+fg76dsOFm2gaXWiTHtP?= =?us-ascii?Q?fF9rnQd2kX3wL5zfqFuOULDWV6uLfkY6zyX4fWRQYYWvMJLqtJGAkPlyKnfW?= =?us-ascii?Q?p0UvdRkQtIb+DZiiNiMckdZ2S0X9GQTdt6Y7xvH1ryr+XsEohGS5PlugXMrF?= =?us-ascii?Q?r5CT+vA1Y8RwVBFDdOX99LhySTvOPTrYBKpc8yvjzqjdvz2zfIbU1MtKSPmQ?= =?us-ascii?Q?tcPz5QsnE4/iRgdBc1vmgk2HJcn/Klv0Yhcn8aVsPbH1tLFeBPP3VtjIVMMY?= =?us-ascii?Q?VWZsLdRYnNWfeyAeFXuAXd9lJ3Az6DDoQC1miZaxJKSQGnyLnQ6CEWfOhKkU?= =?us-ascii?Q?gAMZ9MTRcx0/D0ogB9Nyiwhp6+YjSUHal31tvO7C0TuKgPxHkLSjeFYYQqSu?= =?us-ascii?Q?K4y3p8Uw5kATSXvjOvPRB2fKjUhYG0S4bJC0xHsH5qbugrouu7bgI4wYzHmH?= =?us-ascii?Q?yUwf5cc26XmJxARKVz5YT5lkDWBoqCkrvy0UW9SnVCiwcOqCOIn/+ZKCq/Pe?= =?us-ascii?Q?Ap5xGzE+ODt6sSd+08v++q/ojjgJkMSifMNWgMue2X+UYxW5fTJt2YlOhtKO?= =?us-ascii?Q?aCRPk1SwSJq7KfR6aWFJvAPMdymYG6+6Sl2wHVx+kgpp1Hjg1WuRbpZ3VUo6?= =?us-ascii?Q?0+VAdgCCql5R80ye+GDpL3OzcleQv1UH7h23nGt/EthU6ZfVYGBb+4Yp/jvc?= =?us-ascii?Q?sQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: SALVKM4xl8atAzwayQ+ieNJIGYHEoxLMxpkRSTeOsnkpMm46tRhMVfrU/EcZn6gwcO77gpyIws8ec71RneLVoMdM6hP97Q+xA0OAwihmWgFsblQakkWBxdOvEG59J19jGTV98HJZs6hulEWT6/wkVGInwvbpb1a7KxvFVunQtUWVcBMYHVn04dGil5vwNX4AG2zG++mhonJAv7d0CdYxyvNSmc/97IOG9n1lELbhMyqAwSoGfkCyJL/euoWbeoobFgImTu44GI9gErWKI4za4i209qzidFSuKg0yrABZtPvxKhCVcb4WmuezjtJdCWd24cy//DGgHP9RhX3eWZxJqYgvIsNUiemqrog7NldBe5UxMN6Kr3UOoGcYCdhVTruyZikySIUZ1H6tAsLpnGMogsp2Ge+e0HwQNbgQjDgJ3zKD57GYTPmjHbsu8rnLfv5hQAIv22wpk3Zc4K9pq6vDDfgNHCDoUOWgGu1J1KSCw+2KMiMXI+GD1cwtl6qtc2S+xRY8JD0zN5cSxE3mwmHCuEFj+tEvGWOuDJxUkGhTMedGUSJbl7MLNP5bzY9xjE9vL73T+QT0O67dbhAoShQLrUKQdGi72OXljUL4L/Va3qRJDU+MH6W4uJVr2ClH+M6unfa3Vjk/G39rnCemV/e6DkWIHa/F+i+OOUpbQCvVNc8xnwyirfizFV+5chczbk1ysizJIYdZzNekk0qr53PYhBNGRnNrj1/vWTC/32ot7cDVVXACLpPv2J2z3LpudxBLWJ0ShNyIcNR7ESO/RFX+1Q== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7d258585-2d81-4336-c227-08db8259fd68 X-MS-Exchange-CrossTenant-AuthSource: MN2PR10MB3213.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jul 2023 21:58:42.0745 (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: DMiuRwu9g9kraJO9YNIe8GdFik9nUEYj6bGSOP0hKPwYh7IPEvccwZyba/ZBdoOpZIgnxYYjy/CPhBinC4RanA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5650 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-11_12,2023-07-11_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxscore=0 bulkscore=0 suspectscore=0 spamscore=0 phishscore=0 mlxlogscore=999 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2307110200 X-Proofpoint-GUID: uTlRWRv0lN9EAd_apHJxB1Ex14yIP9dG X-Proofpoint-ORIG-GUID: uTlRWRv0lN9EAd_apHJxB1Ex14yIP9dG X-Spam-Status: No, score=-13.3 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL,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 List-Id: BTF generation currently relies on the internal CTF representation to convert debug info from DWARF dies. This patch adds a new internal header, "ctf-int.h", which defines CTF kinds to be used internally to represent BTF tags which must pass through the CTF container. It also adds a new type for representing information specific to those tags, and a member for that type in struct ctf_dtdef. This patch also updates ctf_add_reftype to accept a const char * name, and add it for the newly added type. gcc/ * ctf-int.h: New file. * ctfc.h: Include ctf-int.h. (struct ctf_btf_annotation): New. (struct ctf_dtdef): Add dtu_btfnote member to dtd_u union. (enum ctf_dtu_d_union_enum): Add CTF_DTU_D_BTFNOTE. (ctf_add_reftype): Add name argument. * ctfc.cc (ctf_dtu_d_union_selector): Handle CTFC_INT_K_DECL_TAG. (ctf_add_reftype): Add name argument. Pass it to ctf_add_generic. (ctf_add_pointer): Update ctf_add_reftype call. * btfout.cc (btf_init_postprocess): Update ctf_add_reftype call. * dwarf2ctf.cc (gen_ctf_modifier_type): Update ctf_add_reftype call. --- gcc/btfout.cc | 2 +- gcc/ctf-int.h | 28 ++++++++++++++++++++++++++++ gcc/ctfc.cc | 10 ++++++---- gcc/ctfc.h | 17 ++++++++++++++--- gcc/dwarf2ctf.cc | 2 +- 5 files changed, 50 insertions(+), 9 deletions(-) create mode 100644 gcc/ctf-int.h diff --git a/gcc/btfout.cc b/gcc/btfout.cc index e07fed302c2..e6acf4e51a5 100644 --- a/gcc/btfout.cc +++ b/gcc/btfout.cc @@ -1302,7 +1302,7 @@ btf_init_postprocess (void) /* Create the 'const' modifier type for void. */ if (constvoid_id == CTF_NULL_TYPEID) - constvoid_id = ctf_add_reftype (tu_ctfc, CTF_ADD_ROOT, + constvoid_id = ctf_add_reftype (tu_ctfc, CTF_ADD_ROOT, NULL, dvd->dvd_type, CTF_K_CONST, NULL); dvd->dvd_type = constvoid_id; } diff --git a/gcc/ctf-int.h b/gcc/ctf-int.h new file mode 100644 index 00000000000..d5586248f11 --- /dev/null +++ b/gcc/ctf-int.h @@ -0,0 +1,28 @@ +/* ctf-int.h - GCC internal definitions used for CTF debug info. + Copyright (C) 2023 Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3, or (at your option) any later +version. + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING3. If not see +. */ + +#ifndef GCC_CTF_INT_H +#define GCC_CTF_INT_H 1 + +/* This CTF kind exists only as a bridge to generating BTF types for + BTF_KIND_DECL_TAG. It does not correspond to any representable type + kind in CTF. */ +#define CTFC_INT_K_DECL_TAG 63 + +#endif /* GCC_CTF_INT_H */ diff --git a/gcc/ctfc.cc b/gcc/ctfc.cc index ee569b12ac6..ccf090d0567 100644 --- a/gcc/ctfc.cc +++ b/gcc/ctfc.cc @@ -107,6 +107,8 @@ ctf_dtu_d_union_selector (ctf_dtdef_ref ctftype) return CTF_DTU_D_ARGUMENTS; case CTF_K_SLICE: return CTF_DTU_D_SLICE; + case CTFC_INT_K_DECL_TAG: + return CTF_DTU_D_BTFNOTE; default: /* The largest member as default. */ return CTF_DTU_D_ARRAY; @@ -428,15 +430,15 @@ ctf_add_encoded (ctf_container_ref ctfc, uint32_t flag, const char * name, } ctf_id_t -ctf_add_reftype (ctf_container_ref ctfc, uint32_t flag, ctf_id_t ref, - uint32_t kind, dw_die_ref die) +ctf_add_reftype (ctf_container_ref ctfc, uint32_t flag, const char * name, + ctf_id_t ref, uint32_t kind, dw_die_ref die) { ctf_dtdef_ref dtd; ctf_id_t type; gcc_assert (ref <= CTF_MAX_TYPE); - type = ctf_add_generic (ctfc, flag, NULL, &dtd, die); + type = ctf_add_generic (ctfc, flag, name, &dtd, die); dtd->dtd_data.ctti_info = CTF_TYPE_INFO (kind, flag, 0); /* Caller of this API must guarantee that a CTF type with id = ref already exists. This will also be validated for us at link-time. */ @@ -548,7 +550,7 @@ ctf_id_t ctf_add_pointer (ctf_container_ref ctfc, uint32_t flag, ctf_id_t ref, dw_die_ref die) { - return (ctf_add_reftype (ctfc, flag, ref, CTF_K_POINTER, die)); + return (ctf_add_reftype (ctfc, flag, NULL, ref, CTF_K_POINTER, die)); } ctf_id_t diff --git a/gcc/ctfc.h b/gcc/ctfc.h index bf1841a7fcb..b9c6a44545b 100644 --- a/gcc/ctfc.h +++ b/gcc/ctfc.h @@ -35,6 +35,7 @@ along with GCC; see the file COPYING3. If not see #include "dwarf2ctf.h" #include "ctf.h" #include "btf.h" +#include "ctf-int.h" /* Invalid CTF type ID definition. */ @@ -151,6 +152,13 @@ typedef struct GTY (()) ctf_func_arg #define ctf_farg_list_next(elem) ((ctf_func_arg_t *)((elem)->farg_next)) +/* BTF support: a BTF type tag or decl tag. */ + +typedef struct GTY (()) ctf_btf_annotation +{ + uint32_t component_idx; +} ctf_btf_annotation_t; + /* Type definition for CTF generation. */ struct GTY ((for_user)) ctf_dtdef @@ -175,6 +183,8 @@ struct GTY ((for_user)) ctf_dtdef ctf_func_arg_t * GTY ((tag ("CTF_DTU_D_ARGUMENTS"))) dtu_argv; /* slice. */ ctf_sliceinfo_t GTY ((tag ("CTF_DTU_D_SLICE"))) dtu_slice; + /* btf annotation. */ + ctf_btf_annotation_t GTY ((tag ("CTF_DTU_D_BTFNOTE"))) dtu_btfnote; } dtd_u; }; @@ -214,7 +224,8 @@ enum ctf_dtu_d_union_enum { CTF_DTU_D_ARRAY, CTF_DTU_D_ENCODING, CTF_DTU_D_ARGUMENTS, - CTF_DTU_D_SLICE + CTF_DTU_D_SLICE, + CTF_DTU_D_BTFNOTE }; enum ctf_dtu_d_union_enum @@ -404,8 +415,8 @@ extern bool ctf_dvd_ignore_lookup (const ctf_container_ref ctfc, extern const char * ctf_add_string (ctf_container_ref, const char *, uint32_t *, int); -extern ctf_id_t ctf_add_reftype (ctf_container_ref, uint32_t, ctf_id_t, - uint32_t, dw_die_ref); +extern ctf_id_t ctf_add_reftype (ctf_container_ref, uint32_t, const char *, + ctf_id_t, uint32_t, dw_die_ref); extern ctf_id_t ctf_add_enum (ctf_container_ref, uint32_t, const char *, HOST_WIDE_INT, bool, dw_die_ref); extern ctf_id_t ctf_add_slice (ctf_container_ref, uint32_t, ctf_id_t, diff --git a/gcc/dwarf2ctf.cc b/gcc/dwarf2ctf.cc index b2945713036..549b0cb2dc1 100644 --- a/gcc/dwarf2ctf.cc +++ b/gcc/dwarf2ctf.cc @@ -511,7 +511,7 @@ gen_ctf_modifier_type (ctf_container_ref ctfc, dw_die_ref modifier) gcc_assert (kind != CTF_K_MAX); /* Now register the modifier itself. */ if (!ctf_type_exists (ctfc, modifier, &modifier_type_id)) - modifier_type_id = ctf_add_reftype (ctfc, CTF_ADD_ROOT, + modifier_type_id = ctf_add_reftype (ctfc, CTF_ADD_ROOT, NULL, qual_type_id, kind, modifier); -- 2.40.1