From patchwork Tue Jul 11 21:57:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Faust X-Patchwork-Id: 1806527 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=) Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.a=rsa-sha256 header.s=default header.b=Q5EtqW4w; dkim-atps=neutral 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 4R0vvJ3kl4z20Ph for ; Wed, 12 Jul 2023 08:00:44 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 86D9E386C48B for ; Tue, 11 Jul 2023 22:00:42 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 86D9E386C48B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1689112842; bh=q9CrfYrN9FRkRqt3F7ay738iirdGhwbTG2Kwi5naa70=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=Q5EtqW4ws3uOeoMs5N08WT6zB2q2taK7sweEE5FPAdMO6NC4VWsntR7dMw+U7kA2h dNSIKJyh6WsoaEljB7e+v7K+Gl2+Mm9XDZvkxOERMqtj1An9AFPE6I6gDikpr5jhq6 UZx5HX9sibwic4YRBIYp0c86fk1Owj/F0xoqYbMA= 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 7EADA3858D20 for ; Tue, 11 Jul 2023 21:59:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7EADA3858D20 Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 36BIDFqx018370; Tue, 11 Jul 2023 21:59:03 GMT Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3rpydtwykw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 11 Jul 2023 21:59:02 +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 36BLw8RD027105; Tue, 11 Jul 2023 21:58:48 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-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 11 Jul 2023 21:58:48 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lsU7gg3pGbDYwzEmRMoXQYwCL9dzb9IzzdXAnkPoGSmVfaDiIONdgDka3olYzVXMFsBLmi+sJjoGiLMCuSU9gHUY/U76K0lfD2l3GcuzyxkAIX8JycZMP6XWJGNwD+myI44/GNZvnp2ePF6MgogqVA3uVKylC1TyVZ7f2R+kA9h7Fum5x0eo0TfwJnO5V51jrvh3GMGKF07MQO5hGbnowPP/c/Id5PDdUCrb52gPLaw208JPpxv0NJX49r+pTcrN1Q/bz9slIj8XiI85jRfvrQRZsmphEbAhYrAkkrA99NuUw9jmPz5eRWDmAKRwQgXnAUBcR9CGtQW84ZTzHPKA3Q== 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=q9CrfYrN9FRkRqt3F7ay738iirdGhwbTG2Kwi5naa70=; b=Lbo0XSrVYu1aq1vBXJVd8VgjOxWjgXI8E5ujvQIV8r6af11fLQ1kbIEynQrHWHqFVRxKiw72fZJNQv3JglpuuEA5rvUi2rkTe8b7eHK4dEUDKYeDS0M1nxkicqYDDDZ8Msl1cwgBsnxb46NpSnLJcilxr9CjBER7IjLr3TfTUC6v64cB4fSk5RSJdzgZVGesS3ZmKtxfecxE4bUqM5dDjl1aHInaheEGx+lKmMair30jeMhym/YPChGHoTMRv4OWQk2wM+m7nd1MtXdOD/nga9ObOXhsB8Ff0Y1Bio+vNYdzECjOl9IIbhqjqtm1bmd+U7kxdtPcXcD61NTaRZ19Tg== 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 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:21 +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:21 +0000 To: gcc-patches@gcc.gnu.org Cc: jose.marchesi@oracle.com, yhs@meta.com Subject: [PATCH 1/9] c-family: add btf_decl_tag attribute Date: Tue, 11 Jul 2023 14:57:08 -0700 Message-Id: <20230711215716.12980-2-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> X-ClientProxiedBy: SA0PR13CA0002.namprd13.prod.outlook.com (2603:10b6:806:130::7) 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: ef28177d-7b0a-428f-9230-08db8259f0d1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: IaKoGbYeB7ibmuSs87MyxkZ4d3yFsQV9tqxUqLvHcjX9tm+qfSTXcZAA2Y9mwk8NOsm2gjsSlnapdbqb1/0SFq9ZVBqfluRhMv3Ac2ejk4FWXPdOYmgPDpBq5r9LGxY0prgrdPaLkEAD9oOIOi/bjrI8lvOf4hifDgMhnJhn6aZpqCi6k8jQ8Z17oeyjvr7iIBnnfh9knPz2sKanrpCyW44xCyjdSuLKn0mJMaiyQUulhH9svdkTJw6v5279whTZjzlPJqGMSn/5PvJASxuEsaWeodpgF/2YJzmRfBLFczPh8Tdx50CJybt7OQKZfqCjz+rIztLOBj7cEJZ+tHWogs7WHZPbLlLsqSAqZ2GUof62BBJ3zUPrW1wap6rgDZI0L/6pkJ5wEJgw6nV/vWs3D8gBjupRgelLK9nOfF9M6PUBHpeNTi97Bkm+NON+Sckd5Vz0t/j2w8F+bTdBoWdm7rzeaebJUDJhUjC2cpYOpQkT2vbmpWtf4cOLCS9wwrLM5suzm7G5++l6aSi0B817bU4Xdzys5VBonyWZwFV3KovFBahsmHmnmfAJ0YTcdNAR 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); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 9jXsEMzaFx87Y4X1nwy3urAcdHJd7+BgTYZgzoJwVx6UlrSe4e1JIVb9qbUZqdJ53n8C/GFWleaXkwTNGhAGc78XX6BimkfLEP6H9meLF16cVCJ4AGJI/SoiuGKSSO2MFxySqvzWFZXl7gfSbscKN/+xHPcIkB30Wivn4zn5cnTqD4ZL4Afl2WWowI/wIXp8I6ov+bCt/C1Hl3ZeXoOLGjwx7y8SAVtjGek9+UcncyfbFSzXZevXessYziRHs7Tgsy+9csISyKsw4+QL9KvZnoIoGhZ8zqris3Xl1UTCTmU2WOdI0hYJyRXsuAlCKbGHAOHQsWv9U9TmuTyTdYPQ6VH28N/8rOp16amthMqxdSiibGDl2AGahh8LPR7nwbhqkg2YP6CmvEinKMAmcjuPK0aPIT63avvFAgRXxohqZzE39/NdYl710PHXRxcAvtmutT4qa4cpTJoqLJtW+rL+iJ2ORw/6FVHng4KVndvuc3yUSB0XP4AgJxKK+7yw8s4ni45VNYVHJp5NypfG/0RwpFpwNUDK+9NSWEsn+7AzT/38oprJtkXAW7LMQAc2JhbXIGSEwLwfdhIBDQEoM8Pahg4RBQe4Tp/ndCSWk2bbA2hPhJlHGMKNg3vFbNL2C2a7UJUS7fM+Ghrh0GFz+nLiyy65wGMjokXcaGRCuJqU1dgbXwcqGQdQSe0q3dcdFRiR6m8JS1aimE3I8673qMS/gT6uBvEUT9EnrIgc6g8PPNrXAuPl2ZTNoaw4LZSGGOL3/LI6pB5qPNnwBS6NIHch3YWjV9uFweOEEjEZ18Hr8zv7npBUig5Ytu/38rzr1L0lqenKsmca+DPFKma0STWisA3gtVAa1L1UjHaVfpyUvtjBuxtuuPAf/eufPKhKHW7TumEseXDLSSOs8UEoJc8FvNRbRz3xZYJ6eAUB+1q6+gRGp5nje+7SHzRd/SKpGflCfJ8V54PvEboC+9NoxpQE2O2ckUiItJJucAsDN7NuNI7mocq6K4ef9gIq6PfsGzYXP9mr3HCByjk3Y+cARtIn3rZ+w+yGs45wSehGUgwK4T35FHW3W5LYz8pMxkT19tnuYfuHtsZLB01NvKNU8KUgU29KZ/J07LMlij0KVKYRNMEKnLmiSIW9Yrf84ORmYGHvKKnOEV1mVzItKu375KpvvNiyRs2d4ISAG4F0/dNEKRRJkbiAFEwjSgosfPxJbJ2HKAZTfhX5LCujBM/hltaVfdXWtAx73M52FopeU9IcRkTkNiYUlrjE1YZeK4Ney/8XzoFwEpSOGgBnbA7wFM1aqfZesW6M0H8FssUYzIfNHiGs7aEOLAVYy9iE/mLv8vh5Cf63v4JzzGviBdIVEDD9PwXUn7cKVgjq7CTph97+9aP9q+ck/PIGCwTrZTaGTZNz7J0qT1BGG2IQYA8k3ls23FZrQIEzJBZA08B3ryntXnFXayRw947wyGsBEVi++geiQ/PsYW54Abn0ujHWejyYOVzRUNb+KRczCspUSVrJoxDAOYMJQoJvBHcu8fqDp1y4y9DM5boZTkfxvOCyKMb40KymyCM2jQxvnmjMUz5WRmrjaBf9ZZjJRk9q+16cKoR5 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Tr5FzTv6sTH7RrKc8CRzS5IvelYjIqOQmzQUIBiP5j035qUaSfnDv/2UIg5kMJ6gJlDAclAHyLuJpa1JKT2ebLb8w4jcZry1WM/oFXKAtzOebFK1A6O9r9tGhoXDQ+T3bOdWZjtkN4bu7IQO0FOdSLZiSn2wh00xTjEm/v4Oy11Wn/o6sZX/7kG+7HhwqFjTPrfuT5Z512jTiamuFGIw996SXzi2/xmOVbkvn5ngVJQoNWlv9bI5zRc7iWseY0OX7L0ahLzV+pvnq6lJ/cCV+YBZXIFs+9LTRBqF/LGgijZtV+O8fQLOwJANxZ7Qqxm5dF6lLhMQeNukRScpRAsYGmHvIcDVvBy8GvvEiNsbyhT+GlWSji9bs8ffx1i0fCA2rP4zHZbwXY7CfI2ctZxYR4qNiCl6dAZrdsfe6qr45LW2V8ZNr5MDVRPtVsqvrw8Ti6KSYVbc8bqtAe3/F/lerK9mkUXbD3hwZ5KlYrdTyeFV6CSMqVRlpl8t/q66VIKz250fyw+FksO496ikGSua8uDyCotTmSv/ikZvoU/03KA/H2Bmw+TzHpTNqrApbrNhXnL70X13I3htRYfgnuxK2XFSemfrrjWLcVZ9N9Ol/3A0lM9igW5vgbUhc5LcYeQ+LAecTKvmiqYJxRzZZNCnh87oc6Jdt7VfkhC2thgm/XGzI6MhFaRqAg47Xch48NpPpM3ZWIgpK7phWMxcH/ebEdbAfZITjRaDFcFq1Y7xjdHTaazRvnLdqf60m26fVRDgz3NtuQvwLw49KDqgeJ/Xog== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: ef28177d-7b0a-428f-9230-08db8259f0d1 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:20.9574 (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: SfJqBaOXejX3qm1BH2qAbDUaLvjvUrZ1Yy9oK+RdNrOe2Bw+zdIS9AM7EDerDkI53FPZdMk1JXlHJgSp4DACxA== 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=834 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2307110200 X-Proofpoint-GUID: kWEl-VZTJDlTgd2FBOgVNWzMkyL4acXO X-Proofpoint-ORIG-GUID: kWEl-VZTJDlTgd2FBOgVNWzMkyL4acXO 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, 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 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 Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org Sender: "Gcc-patches" Add the "btf_decl_tag" attribute to the attribute table, along with a simple handler for it. gcc/c-family/ * c-attribs.cc (c_common_attribute_table): Add btf_decl_tag. (handle_btf_decl_tag_attribute): Handle new attribute. --- gcc/c-family/c-attribs.cc | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gcc/c-family/c-attribs.cc b/gcc/c-family/c-attribs.cc index e2792ca6898..0a3de3ea307 100644 --- a/gcc/c-family/c-attribs.cc +++ b/gcc/c-family/c-attribs.cc @@ -178,6 +178,8 @@ static tree handle_signed_bool_precision_attribute (tree *, tree, tree, int, static tree handle_retain_attribute (tree *, tree, tree, int, bool *); static tree handle_fd_arg_attribute (tree *, tree, tree, int, bool *); +static tree handle_btf_decl_tag_attribute (tree *, tree, tree, int, bool *); + /* Helper to define attribute exclusions. */ #define ATTR_EXCL(name, function, type, variable) \ { name, function, type, variable } @@ -569,6 +571,9 @@ const struct attribute_spec c_common_attribute_table[] = handle_fd_arg_attribute, NULL}, { "fd_arg_write", 1, 1, false, true, true, false, handle_fd_arg_attribute, NULL}, + { "btf_decl_tag", 1, 1, true, false, false, false, + handle_btf_decl_tag_attribute, NULL }, + { NULL, 0, 0, false, false, false, false, NULL, NULL } }; @@ -5988,6 +5993,24 @@ handle_tainted_args_attribute (tree *node, tree name, tree, int, return NULL_TREE; } +/* Handle a "btf_decl_tag" attribute; arguments as in + struct attribute_spec.handler. */ + +static tree +handle_btf_decl_tag_attribute (tree *, tree name, tree args, int, + bool *no_add_attrs) +{ + if (!args) + *no_add_attrs = true; + else if (TREE_CODE (TREE_VALUE (args)) != STRING_CST) + { + error ("%qE attribute requires a string", name); + *no_add_attrs = true; + } + + return NULL_TREE; +} + /* Attempt to partially validate a single attribute ATTR as if it were to be applied to an entity OPER. */ From patchwork Tue Jul 11 21:57:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Faust X-Patchwork-Id: 1806519 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=) Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.a=rsa-sha256 header.s=default header.b=GaEnV1/l; dkim-atps=neutral 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 4R0vsf1ccxz20bt for ; Wed, 12 Jul 2023 07:59:18 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 3F7943856DC0 for ; Tue, 11 Jul 2023 21:59:16 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 3F7943856DC0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1689112756; bh=Hwnq833s10nJol/M/1yBvViV08Qc9Kmq0qYlnvnDRyI=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=GaEnV1/lWquD7LqBQkeFTrJwJYWjbeVFwgTMsxafm+Cu8Qa485qmuCnqqwGlvEoZX CNBEGO3llzEw7/w9gJ8FixAKZwZHPbnFXgV30vzdzuwd+yfphyysCoESlxiSuHtJrF kjeU9+jqh5SJKjKmpQdZAXPS6cjz8hOSzsk5EDrg= 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 E33DF3858430 for ; Tue, 11 Jul 2023 21:58:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E33DF3858430 Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 36BICvMJ032166; Tue, 11 Jul 2023 21:58:50 GMT Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3rpyud64v9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 11 Jul 2023 21:58:50 +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 36BLw8RG027105; Tue, 11 Jul 2023 21:58:49 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-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 11 Jul 2023 21:58:49 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FmA8ShQh8bha/Qr7ZG9Vi8WGITiA7xUcXZFrkzqlIrcO0vqppx+27nGMvmwrxqnrfQmTkTGZBZwodSLFe4y8s50gBmB+zM3KHgTnHxjKZziITfM89CRYoOzAEhObX5lME0VyLmIn+nd5VKBdupcSbiECkPOffq8MMa1zqbY5meCPOwxJAhf+/LejHhVc26VDrZX9D+4AIXUCr5yQJdp0UVCzn36C6KkYvOauTRlLquvkPfO7kuW7SJ1KdLKWhL5tTg3/xH0x1UHntyItNlbG1x4sxbwSDrHjoBJ8mGBFBgMdtoW9fS9SX/2Z2HFUUN6dZGQinnqrwf6FeMJtF9J8LQ== 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=Hwnq833s10nJol/M/1yBvViV08Qc9Kmq0qYlnvnDRyI=; b=EWAmls4OhO8+V/OC0YOYO/CUvdLUjqGw8xIRv/tOEOqnehTngPBhka5yjmylbNUQSr2Mx8ZSCa8PVNBgCf3erIVUCJweHIfGXVi4Q0F6yzSbOg25zFjkDG5KZZZSDpUncjvbO5rUPC4iOEdqHTwQcuTboit96HjXFLnOxvS0Kb2aOgEhCV5BckyvZhoHH1oaR5LYXHwwzfrncYLBe5jCw++44xC8meB9z6wluL+j4YcWAOYloD3Ve1qdS2ywwEsswa+Gh8GW0TJcrQ8LQWgfJwYOLGYBsG97GiwA7O/OOyz1qw7a1PcpL4GvxBIRFmhD00eAPG5aHdhXvIIJ77iBLg== 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 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:26 +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:26 +0000 To: gcc-patches@gcc.gnu.org Cc: jose.marchesi@oracle.com, yhs@meta.com Subject: [PATCH 2/9] include: add BTF decl tag defines Date: Tue, 11 Jul 2023 14:57:09 -0700 Message-Id: <20230711215716.12980-3-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> X-ClientProxiedBy: SN6PR08CA0034.namprd08.prod.outlook.com (2603:10b6:805:66::47) 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: 633b4243-9f8f-4309-be82-08db8259f418 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: VW/LJC+K29hmeLR3yb2VDEhK250of1j3xy2Oaw+Sv0upuiUz/B8SPdSFNISNW1uhA0DYaE4F3EbVJkWRL4ZjpnixiucYj/6oxyFDAJqz6xqBTv529Ax7nRRrbemsGBxA2zivnAeUek5UxNCJZfAlHEo15EPPBGAI85UxMvGbF2F69cyjymOPAl+JeuAdTjbITMTUCWizLjYINlLh2PeN6xnvMDvL4znMgqiI2dMj7CN2IWmcfRccbAcv4esTXxc1aajETDwiW4IIPjv59HOHdMh4QkUcXTK8tQc9ASEuxWvPpZZ0pKQ+GwQgAMjvjl1sBs/EAsm8GosEFIwX91S1IfTntoTHyj8Rkd/WUPXhnadmMrRY/KnJc/bjMAew/WeFa0FrfJXRI5EQ6Ba9bo5N8TvqmlD1e8yqZYDh/p7QeDolcBYh6lq3ycyboM8NN7hZ/W6mcmC7QtvY8HpYKYuGjDIDcT1ANLUNoH1TiFeM+cA1pPy0gNWaCUTQ0FpzkmLJHPChU7uGDMj6oPCzsVbKT4TdZ53WL442Fe70qsUP4us= 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)(966005)(2616005)(5660300002)(2906002)(316002)(66556008)(66946007)(66476007)(8676002)(44832011)(8936002)(83380400001)(4326008)(478600001)(6916009)(41300700001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: KIDv6Y3y3RcYn3tFRflJ2Xo8YZQDdx37phuK5ZSArcLkH+ShM4x5XJ8moX3Z+6CHk95KPPRJzDLsr/ONcaUg8AaMIZjiQ4K9LjHmzG1dR7P/WWnrASlypKWf5+rx3dqA6iypjKgr83u6CfjFd2ca2eN3sKtE3wXJ+1oNk9jl6T0E6ndW0FS3cfnNCbCyfg/6ofRznYr0mK1rO9QkO5r8gmRv3GPRl9rD0fIKy0VBdk3Q7YceXpTBEfxOt3Yjbma2wT3zkihZeGfdO1yf1Glh6OPSEdrxaPFS3SwQtqZu+6UxI9l/sknEm2TEs5Qr3ClihEMweXgsinGEokqFk81b7g+G4DBzjmCm+q6JHOFkZrvn9qKcCtr4j7hX016OfCavudXnSifr7NKkuJbBcWWjQmKjDjA4Gbd06S44d1FRUI5pfN+fE3bTvV8xN9shwQNIBqo92V2j5Ax8/xjWVHFWVcN8Re6fySEHnOn/JfRlREITzpOAqEm/aRXcXTD3+Ftxo7MveA/MFZLW0QZJ0ACJWk1t9nIWlMFqnXV/MP3H3dEg0Qd/BYF5H3euuFR3djTzLb7RH2ngU4+0nbEIPlK2zcub2t0rl11d0pgEygVCt84XjDiX/2UQTsx5KkBF9xbT2EVMwyQabRB2u5iAAanv0iS3SH5+ZBaySPttvwtqkCOTcf8rCaDhMNU2jrbJF+eWF08v/uNSXM2Uo1CH5Lh0N/9NuC7+wS13eRjxIqvOdb8Vc4HawzcAMxss28yW5XoLa14rYkAUcfC+QXwQUiVayFXjFYc7AtDJpBDPfAs0TWuy7ryCb+hKWh9ALyYCUHeMpaMlIcOz8HUhzTONIkSWUtplja2PgFX/qRQJ6UAG5WI4Qri/YQY6Phdi6MEpRKFLcMabcLetkBb1yH6TYfNsn1FJL4Tezm0m6WfnGRutmxGgiRSfXZ2Am3zZyj+qo9uLJDE/Amze97GKN6fAWylvf9NK5k7KYhtOdEsrQwXn8+99tQ0a+b1mSmuVKwkYiibB9n2La1Hofzbu07reMK9DuAqPPHfKY8alhx0T7ArikvuS10BNHnM2ik/pUxzikafhcfJVBVg2ViWUm63oKwUELudTanP7/kEsV4hA2NSzuSXLp8W3IGwi3Pjbfl+/yQACFxGcJnsIilwFM5aaOs+pjeqvgwEH6VA2BgZ6rHyndg2qwDv+9k+pZprVm9WdOhE0/0wfeQEt3VA8jjOzZhkIIOfwz3g8aHDkzbP4DHOPARP3Rq9PNfI7VUbIICajuyc50jNtAwIPnjvc4DFR2NUdv4Vay/jHQ4ahLqfrjh/uO3gEWW+DWYiFv1J4b1cxj7AbjkFPbcFsQ4KLP+BxfTJlSdwEsZa50y6XytypVNK1xf2yN070aRDaCiMLJncECuGsbZr1YWqvvKa5o+vInBYq2bxCP1yyC3kNQJnvp0/WCL9fTMc4bWny77aZiUzSwW6fdbGyXfdkJle4znMBf1lTw9cUqEBWKdkvuhhoJpG9tQD1TnM4qumfo5FQp/bOinIQ3o9LQwVpKiPlUK2to3aJE52/QXMzXuoKvEHxQedbXwrE4Kz6tZm7cGL5POv0LXHH X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 3W8qygslqgahEU1r8RRleP0VtQ5rlI85Ksi8V5gdADhg5xifIqR3z7aAx345FX2HvLK7XfK1d7CwgN48DZpCMLVHmhTakpNVadGdubL2hOHqySSN/PA5VTQm2GaTXWGIsLi1zUjNZQACf7ISL45xyZTWmad3frptblAWuykgH6kNGk0K67PKCcGJh3mET8kH3YYp/OHAYqTkoTJrFtkzwbuvRoIDqJEXoeC/T6oUSA04h5TJDZ/JRP3YBLKemwM8Km8caJxrdNYgamHSeJSF+PpjIZPT2xsXjB72sqXMSpg1JYe3pNhxBMv1CDCHMGn+xyFqBF/YcUtSrc9BrkHC8J+q8DsEnytm0IMDk4fJn9RJev+afuVGcr3+rYaIyFk+//9MBnxzozhQCIF53wiPw3PWbxCVq7QSiSGZDzYuQ8QX7gGdI/k4aEDSC20SVDks4JJUMalmDhYHpcu7gHHINxKJz7SZ3dR56X3OboqMg5d4OuQOmHhr20DK3hMOawNoIAGeeU1MCvtnMRIgNA7sZfB2FqBENtlAkjTTyPMA+xLp1a/1sSHYeFp8IQ7U/eFXGvfxt8UBp9FFo6iOBEokQGwkdxmZLYBuTDQBo3g/CorZihKGuQJBfo1nm3rP2Pl8wN+xlx/ZCYnugM8jxfDIDkg3iVkOmqArjNYmPL+7q2QeQCl0KdiYwdHB90Eyib6LrI/mrc7qXVidpreEfb4z5jmONHKXshstBQCHtJa0jqXW4Mqn56YF17ocj1eVFCAwR5B3yu+RU41fzA4tLI4Lpw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 633b4243-9f8f-4309-be82-08db8259f418 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:26.3951 (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: d0VjMmGxF3ZncKgfTcj8X/VEOKuJacoSNreVbwjfK/aeCYOccCRPpGBsEwMu4rLVhT/AfXPfdw5gp9MFHXNQZw== 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=712 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2307110200 X-Proofpoint-ORIG-GUID: lQzatC-H4K9w90Ha4eupb4-kTVwLbgLd X-Proofpoint-GUID: lQzatC-H4K9w90Ha4eupb4-kTVwLbgLd 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, 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 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 Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org Sender: "Gcc-patches" Add definitions for btf_decl_tag and the DW_TAG_GNU_annotation DWARF extension. include/ * btf.h (struct btf_type): Update comment. (BTF_KIND_DECL_TAG): New define. (struct btf_decl_tag): New. * dwarf2.def (DW_TAG_GNU_annotation): New DW_TAG extension. --- include/btf.h | 14 +++++++++++++- include/dwarf2.def | 4 ++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/include/btf.h b/include/btf.h index d0994ab369b..bc808487ab8 100644 --- a/include/btf.h +++ b/include/btf.h @@ -69,7 +69,7 @@ struct btf_type /* SIZE is used by INT, ENUM, STRUCT, UNION, DATASEC kinds. TYPE is used by PTR, TYPEDEF, VOLATILE, CONST, RESTRICT, FUNC, - FUNC_PROTO and VAR kinds. */ + FUNC_PROTO, VAR and DECL_TAG kinds. */ union { uint32_t size; /* Size of the entire type, in bytes. */ @@ -109,6 +109,7 @@ struct btf_type #define BTF_KIND_VAR 14 /* Variable. */ #define BTF_KIND_DATASEC 15 /* Section such as .bss or .data. */ #define BTF_KIND_FLOAT 16 /* Floating point. */ +#define BTF_KIND_DECL_TAG 17 /* Decl Tag. */ #define BTF_KIND_ENUM64 19 /* Enumeration up to 64 bits. */ #define BTF_KIND_MAX BTF_KIND_ENUM64 #define NR_BTF_KINDS (BTF_KIND_MAX + 1) @@ -222,6 +223,17 @@ struct btf_enum64 uint32_t val_hi32; /* high 32-bit value for a 64-bit value Enumerator */ }; +/* BTF_KIND_DECL_TAG is followed by a single struct btf_decl_tag, which + describes the tag location: + - If component_idx == -1, then the tag is applied to a struct, union, + variable or function. + - Otherwise it is applied to a struct/union member or function argument + with the given given index numbered 0..vlen-1. */ +struct btf_decl_tag +{ + int32_t component_idx; +}; + #ifdef __cplusplus } #endif diff --git a/include/dwarf2.def b/include/dwarf2.def index 7ab3ee611fd..4351498f288 100644 --- a/include/dwarf2.def +++ b/include/dwarf2.def @@ -174,6 +174,10 @@ DW_TAG (DW_TAG_GNU_formal_parameter_pack, 0x4108) are properly part of DWARF 5. */ DW_TAG (DW_TAG_GNU_call_site, 0x4109) DW_TAG (DW_TAG_GNU_call_site_parameter, 0x410a) + +/* Extension for BTF annotations. */ +DW_TAG (DW_TAG_GNU_annotation, 0x6000) + /* Extensions for UPC. See: http://dwarfstd.org/doc/DWARF4.pdf. */ DW_TAG (DW_TAG_upc_shared_type, 0x8765) DW_TAG (DW_TAG_upc_strict_type, 0x8766) From patchwork Tue Jul 11 21:57:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Faust X-Patchwork-Id: 1806521 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=) Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.a=rsa-sha256 header.s=default header.b=Id9d0Rzl; dkim-atps=neutral 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 4R0vsq4glfz20bt for ; Wed, 12 Jul 2023 07:59:27 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id AB3D1385773F for ; Tue, 11 Jul 2023 21:59:25 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org AB3D1385773F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1689112765; bh=3oodLy7eAVQqJPRPB4WnCDJ1PtF2tjxgfI0DYBu+U4Y=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=Id9d0Rzl5lX078jfXTvW3YT9BXXYVuGeK9PFiWi0YpEO5E/4Olp+kpO3ItANSOlNf UwL2aPGD8AX6g7SsUwmi5odp5a2Rtj/2LM34AAClBApyfY5nHkuaFxsfwqxvuMGd1N D1KsO7phJX2xiXc7zYOIPipdtnkJTXgrEr1fouQg= 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 0E7B3385770D for ; Tue, 11 Jul 2023 21:59:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0E7B3385770D Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 36BIDAvY015513; Tue, 11 Jul 2023 21:58:59 GMT Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3rrea2v170-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 11 Jul 2023 21:58:59 +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 36BLw8RH027105; Tue, 11 Jul 2023 21:58:49 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-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 11 Jul 2023 21:58:49 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TLRo9gacddvJkfHATViSbqshLVMBojsnVRHPiGuPrPjgd+WO06kQpgj/53uvLACrvliAGH7iqG4I/aX8pLYaPTqs5ITMmN4lFU6I+2g6ol4CMMm1SVxXAmyHevYxDQ4SLTMD7IxSmpd4B5Btk5d8VZObtxHQgKq+gU6Zu8PYejWqzbA9vHjo2LjSECLno4K7/D6JkQEptepYRbu8lCrj82MsqcSeQer5YU7XXxAZZQ1fm1uRHd2RxCrg2HLK7ipE+zHUgrpF+PyDLbzbyKApBrLDeVTol1tdtm7wVwEezJ7/0lQTRfMiIWNbzWfomHv8lpgkmPg5j1tmhAuLFHj5fg== 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=3oodLy7eAVQqJPRPB4WnCDJ1PtF2tjxgfI0DYBu+U4Y=; b=N4pg4G+hQXXexLLZVv+P3OM/ux8QN8/qUMqFiQzLzjqhR25si/XkNBwlZ2iOfLXZkX+eWWBJXgSLT+B0hViPEPic0quqsVkr+u9Iq2IE11fBt/HRhloWgNbNZFGOWDvLGZoV8EkljjNb1h8ebFcnaYdTvkRIEWQ+mMtvMyCY9X2fSwEJ3gq+0D08ijwUdzXAVS1p4vxrwWivYIDh+DoydzYUORUf3SB+b+gp1qKLtZ5T6fe9wlgaI2nJ+sJZNnw8YXTSWxKfY+KrNi/gg/FZm/mW/wKR72aDSOsjHHSnYhSO0Vk79sVBfCAbvmWq3ce7MODa8Mtl/QvR6Mjquy00WA== 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 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:31 +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:31 +0000 To: gcc-patches@gcc.gnu.org Cc: jose.marchesi@oracle.com, yhs@meta.com Subject: [PATCH 3/9] dwarf: create annotation DIEs for decl tags Date: Tue, 11 Jul 2023 14:57:10 -0700 Message-Id: <20230711215716.12980-4-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> X-ClientProxiedBy: SA1P222CA0042.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:2d0::16) 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: 22c056af-afc6-47f2-0340-08db8259f716 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: P8/49Z8CbhrIVX9bQVbwUk2Ah5//rT03jOMYuwqalcR/oSKqIhYQSn+e4J4M7+hTYB37q1ciBtGKUkz0H830IE8A+EkPm4VCKZLCs6OGhbYgA96g3by5yH774CFCrhz1LvDrD6mLCze39BuSnyC85nQw5kpJWTa3a90wDOXDSl8eHfXxdvHKL2mo9jqOLGRKGf+/2/svDLIW4KE0H4uKCD282YgRKBauppjcpyjsguaH88AAQFqIA6szHRWATvR2cqevQPyRyTeaubYoqEF/exxaXNvu2t4Gi9Ezt018LEnzzHCrCDdO0/VF7+pO7zlaCCRoqObmuCvcuXsjB5Ud9YNU4X5xVZmqWIJO2lZBMuheDfMMz/oy7yYXEWwrvoxLP8o7+VvDLIbBNDnot67yFmVlTjKMwd1/BxzVPDxoQ+lxhf6xONruouepSvkBeJrIjTnWZvYXe7onbHCmF2rIltY6Ov++DYS+UsTsYnZCN/RJfePBPw5wxKcHswvA7N9T1ReyNAO5ECSJ+PH3OMskQzEa1YUYyPHECGj6brZuRm9HGQRB6YUlWHLD5OpQImof 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)(4326008)(478600001)(6916009)(41300700001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: fIpNSyG88aXqtIdhqY60rnMMqi/yxqfTQkUXSxHcOgCXdyEVElze91btY/X6KX1mz7iP81NIUggx1aNM7UoNxnmx7JDQ1wpHkRMeqwl9/142gQZfdBSYrBhl6MiI5EyQUpz7n2wUXI7Xsl1yhEPI8HUwoxcJS1v60xamuDq5jvmHqOgz+S1wdRQxBonkyqoxnSe2JD67VrAJ9BKMi/I8tPacCrjPGKNtEuw13BtwxBrGiSTF+6f+1a+ZUQGHXNLI9s5lOkz+vMznwlk1mIURmkaa06eQyTpZQFbHjaq8DfTExNbVxghJeFP4VVpwGhbtcosz1sAoJZC9/PVfQfmeMwDNVqxg+CpeVSnfbZEm0yUun7BqtYSQ+65Kfb630fec1APS0u59ubwpB51pMxWlehAd9ZIegkkvVbMU/gioidXQvOhDMhKxM8Kyp2UB8ggkxshuAqVBVH5a6yAzSFonZNmxL/xBaIaaEJTUU1qgglD5TcwIvxaPkTnEuHrAFaxupsiYm8qfQiPUMA+PT9envWajTTC8QANBBxjJ7jEgkixM2drFa5K4kSM9Lhdnknk+A4v2pTUV9h0BZaczMJsOXRkA7G8fpigUDMfn5BHnxd3FgG3KJ9m5FhdlsWBsDlJAfLh2C1RFJOWyTI7g5dDJASjFXDnM3p8/pLRelQC9UHfPcvV1PdcIpUKEE5BQuPvAP9y+wnl644SSCvnixSn9Njl0o3LGiTZJ0NEaLdelxkMtkCnzseJ/r3nAzPabFc/fzs8qQ+t5h7xiTcozaWVMOICBFU69SIlgTnDZDh7cjSCK2lgpF9MKAAGhT2YQSwC0Pb6fUpoLg7l5QHPbE4fXJhomEnNxqYbkHAum5edOOfDZX2wvFJDaRh2Hfxy64Ad5wc3MntqDNMeOkj2+CrviNIsrh5vlTmdoar+rTnIOmVy/AOOuHNSMfqpqQki/xxIYtVqLpzJnvx+DBMOwvnkkehQrWpSNcbrbOSSTHO7WGlSId9pKjC1jqPtgJmCiPfm7Ta4VkDMrf/5WaQEsGQsWprCYPuzu0OLnX49pJhDrq/e9KbaFIlmEUAApwKgtfvPRPDZAjYu/1HF2/p/rEIxb9o0u3aOzmFPyqqS0Iaq8kfKOwK2hbL0/ve4rSvLlhku0y+BZW8CCIitpuojmYSNPjXdO+BWtr+WP7MphbCKbmcfII6cHF1yvjV41lRwRHoRSiesIq2L3XslZ4RC+2H2neUUWWA70aN5GuCyEiUc+XOjeAf3uFOPFusjU9p8G/GF/aj/GKw4svbhuepxKADbsg57KCyRls5j3KWxOKwcyuW6w0p53XwlL9zX/YZ+d/z3cLxuMOt3dBt7NHzS4LVAqnzG3STyj8go5pL6rNrU0yYnjFzbgaVjIyLvmdZ8vgl82FxLgLnw5OoWOfxBqpFQZpuYPhU1Hmg841Ur4bpeNBr4ASsBRTI0BwQuVrjGKSBUeJe0KQSRimTr2nyp1FJeXYVrIyHuBz4mrVAELg1y0RqujLUSYm5v6fRmjkbmCxubulk3DQQPw//qOV5vTOqT8RmaFT4vUc4Sb6StexiuhlY+lYkRb32YDsIl3NTYndknR X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: qGqCY6eRplnRUsmY9T6x9zhOO7ACeF/rCviw5cXHXD5SHPbAI7MvuGOE1kepUdFANAqT6C9DWWSzq5Z30bu3kDEnsR6bAqPWmYGjphkZJa8fGh6kgM2G5hLCvWUn/c8tss6uf/rMfoK7BxgtOCfAZeXGQRKgZwab4t54yKHTgz5IlmVGwCe2WoIB+0LVN04psoQciN1xSHAZdxyfan9pHT3TN42eeaRwcqRoYGpaeDkaUbMeUdTsfBFvPd9gPqsZBKpdp4o4ws4w5AKehSddYEpqILGYT7ljl+D7gIJ1w1qhIyHtIAeD8gINJmWrUL8wurO2ozdw/R8S7qtpFmq0BYi7iUxmqr5WtuQBPkSKmNt9UvTcyY2s2jMZcg28y4fdC75rQf+BDzp3F2KFdUD6aoolbxsxYKWMzyFiEx/9pMmxBnPJdwvt/UIBj3jzikDjmSm2wu9g6++HGRJfXRWd7FIoFCAJEnE6rKT34wJkKD/dVoD/V14KAPomgw49A28pSvjLgw0UsGFSL/CyUmHjvnYusSbX2GM3Zlo6G4wH7licVzoD/oA7RvoOcZEmAEG0LV5DAaGhOpVwmEeN+Iz0WIbM4zLjijymVc0Aa0uVU6+t/0l0ukALqjvgSJuZY3NPLS6lk/TD7XQLJWyJ7z6UVE4VE8h7Qa45w9v+5HOrA2u2rqjfAL/Yfv80J2IdPiDYt7/jFr1qXiB9ZDc+N0Q1N7Z8b2fe1Wcs2hSbkdxL7hpVzEtLo6rYgtA2DQwtwDKYMNrJ+0F/xS0cQ/mwxyOAAQ== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 22c056af-afc6-47f2-0340-08db8259f716 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:31.4814 (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: tLv5udagOZEBiCLswSdxKGxDwSL2ZSmIF81bfsM9iOvxsMKxARurxB11uHd85ThcG6Kaqrw5N4kZkn9DxreVAA== 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: g-kBJVWDfyqjbD2CVfgJp1MS-3Ro53je X-Proofpoint-ORIG-GUID: g-kBJVWDfyqjbD2CVfgJp1MS-3Ro53je 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, 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 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 Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org Sender: "Gcc-patches" The "btf_decl_tag" attribute is handled by constructing a DW_TAG_GNU_annotation DIE for each occurrence to record the argument string in debug information. The DIEs are children of the declarations they annotate, with the following format: DW_TAG_GNU_annotation DW_AT_name "btf_decl_tag" DW_AT_const_value gcc/ * dwarf2out.cc (gen_btf_decl_tag_dies): New function. (gen_formal_parameter_die): Call it here. (gen_decl_die): Likewise. --- gcc/dwarf2out.cc | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gcc/dwarf2out.cc b/gcc/dwarf2out.cc index 238d0a94400..c8c34db2b5a 100644 --- a/gcc/dwarf2out.cc +++ b/gcc/dwarf2out.cc @@ -13620,6 +13620,35 @@ long_double_as_float128 (tree type) return NULL_TREE; } +/* Given a tree T, which should be a decl, process any btf_decl_tag attributes + on T, provided in ATTR. Construct DW_TAG_GNU_annotation DIEs appropriately + as children of TARGET, usually the DIE for T. */ + +static void +gen_btf_decl_tag_dies (tree t, dw_die_ref target) +{ + dw_die_ref die; + tree attr; + + if (t == NULL_TREE || !DECL_P (t) || !target) + return; + + attr = lookup_attribute ("btf_decl_tag", DECL_ATTRIBUTES (t)); + while (attr != NULL_TREE) + { + die = new_die (DW_TAG_GNU_annotation, target, t); + add_name_attribute (die, IDENTIFIER_POINTER (get_attribute_name (attr))); + add_AT_string (die, DW_AT_const_value, + TREE_STRING_POINTER (TREE_VALUE (TREE_VALUE (attr)))); + attr = lookup_attribute ("btf_decl_tag", TREE_CHAIN (attr)); + } + + /* Strip the decl tag attribute to avoid creating multiple copies if we hit + this tree node again in some recursive call. */ + DECL_ATTRIBUTES (t) + = remove_attribute ("btf_decl_tag", DECL_ATTRIBUTES (t)); +} + /* Given a pointer to an arbitrary ..._TYPE tree node, return a debugging entry that chains the modifiers specified by CV_QUALS in front of the given type. REVERSE is true if the type is to be interpreted in the @@ -23016,6 +23045,9 @@ gen_formal_parameter_die (tree node, tree origin, bool emit_name_p, gcc_unreachable (); } + /* Handle any attribute btf_decl_tag on the decl. */ + gen_btf_decl_tag_dies (node, parm_die); + return parm_die; } @@ -27170,6 +27202,9 @@ gen_decl_die (tree decl, tree origin, struct vlr_context *ctx, break; } + /* Handle any attribute btf_decl_tag on the decl. */ + gen_btf_decl_tag_dies (decl_or_origin, lookup_decl_die (decl_or_origin)); + return NULL; } From patchwork Tue Jul 11 21:57:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Faust X-Patchwork-Id: 1806523 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=) Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.a=rsa-sha256 header.s=default header.b=pd1zUju1; dkim-atps=neutral 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 4R0vt83Ck3z20bt for ; Wed, 12 Jul 2023 07:59:44 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 72338385355E for ; Tue, 11 Jul 2023 21:59:42 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 72338385355E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1689112782; bh=Zllb6fLekpnUv0qZsKB4b1yNhiUzT027+/xV7pAU67I=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=pd1zUju1yDI85NfKgnvBV/iqOn1WEhoDNa9uHI/pLBNKAbodLgRljACsD0/LdvjIL 0MpVlfhIZefd5Pv/8c4H+Tkn+Tof07/vNJ+ar1mcqG41Yku514Z3oWSX6qIubOYakn qOzjFLaZ9iOugCzOwbxdOSQt3hS7yms6VtNLWnRg= 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 55DD4385734A for ; Tue, 11 Jul 2023 21:59:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 55DD4385734A Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 36BIDCce015529; Tue, 11 Jul 2023 21:59:00 GMT Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3rrea2v171-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 11 Jul 2023 21:58:59 +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 36BLw8RJ027105; 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-4 (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=lFBPgFggdiaYjOIgYxY2yGGU8uDmjyEbgya/9bepkkTHjqx6hgItG3jT6mVZefs8x5oo5XFRACJK3Bi62NgEXGruQR5d5ImTFyA3/gUfQmC0VWwu3GeKoa3AZGe2BIb93QU8iW8Fg7xrZehVmXJdleGPO9gR7rnH0V6U89VhApjzXSnDGoNs0PlnkD+LqqkcmLOycP7E5yUf6peE4XS1GU4rEwidsSl1bvcmtMyFdU8OKQdfaMQDggDaQUiArR/Jv2SOrNNAvDyQt/gf7C/oAhbt14sNEWYOr/LMDkw8MDSAh4g5J5BCptKni+5gyAqlgl/aJNR7RfRR7U76YGkC0g== 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=Zllb6fLekpnUv0qZsKB4b1yNhiUzT027+/xV7pAU67I=; b=W4/LsYrlUXRC21bwUKINJprdycukjhDP7ooG8rAIirsidQgXWuXiB7QTT0aUAxoQIQi+dua/FIpFNUgQqJC/WJogU2HTQjy1hY09L/oQNDHCnBvUWgAwczhCkj+1IY/M61Lm6jKVoLDrnnaKeWi7gcIVmopCX08bs3i166W0PIyKuiD16m7uZecuB2U0rmhzX10EKBFc5XZQ7r2uXoau/PbmTA6/LFNzR6ejbDXRVKATVa/5WhwXQwRcEwjPUpt0ypnYTcBfs0VUeBkUSfArpP3ZqGnhkdLewXViQkwpHw8IIB1z7qm2dEowog7iKtNn6ROEn5zECAVYPBW9msk1kg== 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 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:37 +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:37 +0000 To: gcc-patches@gcc.gnu.org Cc: jose.marchesi@oracle.com, yhs@meta.com Subject: [PATCH 4/9] dwarf: expose get_die_parent Date: Tue, 11 Jul 2023 14:57:11 -0700 Message-Id: <20230711215716.12980-5-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> X-ClientProxiedBy: SA1PR04CA0014.namprd04.prod.outlook.com (2603:10b6:806:2ce::20) 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: 52efe72b-ce38-4841-f424-08db8259fa61 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Rwd2q2QB9qPrj8/gO2RVtP0xw9ne6eNruTbhFuKmQxMr7WrbN2FOF+/n3Sn2nmo53j7D7lsajTQ93Ub8x4f0hJ4IwcVGijhqz+ZwulOfmXY7YMTkhzb1LOETgV0BJtP2npiTaxQPYjo2Vc5+MgfN4eqVoN03wbNHpHwHyEgkYzS+Rk9kOVBO8X34jTEYe3/5UPPZBvwTkbhC5YbAPm1r/Zc2GwIMVLjfZWAAeuP16rpARywdtiBB51KPTnH5AsZw7gOKBn1JJI37tsxF86gIJDGq8f7frqaPTDviULu4gfqQ8yhts78Sb89uvS/yNRa0JSedD7GAOdZtbRzG9ivHHjqJzUq3f1lzGEHsnF0xpnjE/bBZdyb17UA9S8U3h3OrzveKl171MhGUHARWTJs15G9WSW6PzpBAJwV4IP7RQao9t3zjugapRyCYip6qj/3ohb27zNoWkhR9aHRvDoyQEspiHSCqfYjsYQIXqGLyTAUC2iR3WvywhFTTP7tb1uQ9jvP4SRQF9I83ZjIosvsurPebdk3igVCCUNP4vNsOeN9Wra9PUDK47LK3ZH1JuWjz 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); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: b0s5ekfZf4ScNGdnpRpRKgPS5p7eiGvWBxYFXHRsA4mF1PahRNaFwSPGyq4a632CsOc5qiDYwrbTrm68nDexx211Yir+1dh9AGnd7cIQo33EAJ85Lv3rTUmurTCfqIsNH89OnTJvNaO2+xGFuwymvrOyIyc0VuRM9BmbhsGM5BpDZ2UV03URqTmXmfzSkVTfeJjBSnJvezvn6G6Mg0I+79K7XJSKpyw784O6YV0v7kmtFjDCsXXh4frN7DexbI4HAVHjaint2MzVfD1PRlgZFj/W6H6UyoqA5AyYfTJ/GPVvH2PQYseBRrjR3MiptHIfjN1UJc37V+Q5gQXKKg817nWbcmA6mVT/Xm5kqlXdkCwcxVqpwFBWk1AiOe9bYxN88S2sZOTapi1UCisp1Ur32g4Rl95/AWikQcIzU3R9sYtEfyJCnbAFsmnKCFHOkFeld/VjGKpcrxshJJPIHaRcen/piJTMqPQW7ExSA0iuulsCG0OoLbbNa9YF1N6q1qfSfg0uevN56OAfjhEwiNeEUPTLvswI42wS/DIEtPj2ey8eM8+CBAR3OaQ0+pjuFSJHheD5v4+1zR5Uwgyf3bz2UTTe2cPb0BQC6zniaJMBK10PvTOET9tMyJUKEWMyN6NzU/c48WqFR4qXGu7hR3QD2US099zdc59PjZV9GipC6pbOaruTcQ6BiiQA9bQ9xSVYSEU94oIfRJiHWg6F1PzHLB60rGUptXX0qSK77RDCDbW30ugmqOWSDos5xPomzSXGylZLWfmfN2eG3OpshN6gwyNUjCqSZmBPBjvoqv5XzpunNxPEksAPDRjk9dx8UzdscH5nbpnyCVaWJQ9fCXy9fBqyJVKcCz6GFtcngI+NeYFLMBbAAppDJz4My8gj5LyfSviApVtQmOylZLImZ1FFPumjOq2Z8Vuc0WG5LgN46qkEEgV8yN6QyB9bBgV0Veoz9QXdJzHMKs5PxKZGh6oCo8xdleJbvY2nPftEa1uoMmLamp4cdzMnYfU5BMaHqENJ2WscDnIQ8Mdo1TZ6bkBHxYNRndyeDyDQWgu6FFdLkQOYN7i6VpoQ03InjZnNkP6C2mWpCVTxByKFyJnUpEXpLZNP9w783tXA8IaP3HYWT1+Gx/z6PX2+qovat/iBN5lrHhv+U7l8AnfCGeHB7OwcNwX12oWIbVT5nQ3q6oJNyoJKl3vcxA2xyYoiPelkxvQZCnYG9Wa13951XnN1kC09Nq7iwIpLDqng86MaXNN3xbJO6koxyzFKcHHoIka45nnCiXvDJBzZxPCBtqWRnYGEyyIh/watXGc9ClJGL7nUFGBZ8Xj6499goR/A+K3GvuEOHR7QMQILGN8r0rGuDyFsNfG5bEf+yHHFpB+3pDiVnQ2H435rVc5VWky51qx3YOUahI/BMAfUQdRUQ+Kn+4zmzt4aySU2HNeOicmOAfQDskM7wZwN5CFvmNIKiu1Zc9dM4xKcLZUCe9lATzKkWxK0l4Yc8Hczl6bQ+Or+1ghn+u2o2Rd2piEKuoj/J5yNc0CZSjewRFU9wpQ1gsIY/TsnYArpDeEe8UkdyZYQzuOo3NRnGu8ZMY1p9BZM4Txi3mAGDbsuLWt6R/smzMCfMNWzYw== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: kXq9x4etQN1yqjSNWYKpFPVpFxE19JPnwHToplG9Ku7VOCWl2r7yWwYWtvwBBdXMc8+NCm5IvlibPx3ZFMzDhWk9RMtjETnCbYDCAQKunmQtizup5AjLkpaREeuvzDuyCJPK76z+kSr2j7pX0z7wclnbfL15R+k31K6YnOfr86i2AmTVKyGIjNPpOGwxx29vZSe8ogc+YIFLXfUqDP3JLNp974qyeC0qsd1q7XOZmp6OCOlu95CSmmM1+pAym0X3jqGK+vW5kGecdiiNQ2A6E1k2LxUHIZRNCO0TibN1Dk+Qtzr4T+4MUcRxxDtfghB1PvdsG+u17kaehMqTPhRr0SrfgNxBBkpds4ZzTzAE5QCuUow8LqKKmgmr3fC+RqXjLzsyh97BtbxbHR0eomEu4cqYL9gw92HYw/+ZbgHFMCVEB1dQY2imOlBKGRPH9ZzZ+pHllC9rEqtMdbR3dCoOnUz8+LO20WHgv9BlboIhQSPcaKrvYF56wyEuecLrSl9wkNREBBJoDHE8pU3jhlcIuwi3JVq8gby6Z1caslDDT8X2TnZgsyPFgjGNxk9aDH/w/rUFmnI1mss7xHM7Qpwrey/i3ctV7jMlnZ8TrKO8Sga+Jn16Ms7MzG5Sq5m8L7R829LY06fV3teXWTYN5xcNVrAVgHH3R0Bk0K6SFalMGIwpq1dxhYwfynzTlaYVQLgt4NIn7j6Oq/IIAVQTwBofd64j6P6HrUq+jUwRNTwh7Qi2p+kOAcrnjzR8GGZ/WfiNEKPFF1ahHpdaUmid97RDwg== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 52efe72b-ce38-4841-f424-08db8259fa61 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:36.9739 (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: JA6Xb5XGDyriCX8v0wOalC94eNIrWLfq/A4DHJ5b6yvQGArzNtbwm+wMdp9YUtmzVL2rCVnYh4np2mVO9mlueA== 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=705 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2307110200 X-Proofpoint-GUID: OKtwTtJDOC8rXHDrQpagTXHFqMTXpgcK X-Proofpoint-ORIG-GUID: OKtwTtJDOC8rXHDrQpagTXHFqMTXpgcK 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, 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 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 Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org Sender: "Gcc-patches" Expose get_die_parent () so it can be used outside of dwarf2out.cc gcc/ * dwarf2out.cc (get_die_parent): Make non-static. * dwarf2out.h (get_die_parent): Add extern declaration here. --- gcc/dwarf2out.cc | 2 +- gcc/dwarf2out.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/gcc/dwarf2out.cc b/gcc/dwarf2out.cc index c8c34db2b5a..ba6d91f95cf 100644 --- a/gcc/dwarf2out.cc +++ b/gcc/dwarf2out.cc @@ -5457,7 +5457,7 @@ get_AT (dw_die_ref die, enum dwarf_attribute attr_kind) /* Returns the parent of the declaration of DIE. */ -static dw_die_ref +dw_die_ref get_die_parent (dw_die_ref die) { dw_die_ref t; diff --git a/gcc/dwarf2out.h b/gcc/dwarf2out.h index 870b56a6a37..3be918edc21 100644 --- a/gcc/dwarf2out.h +++ b/gcc/dwarf2out.h @@ -453,6 +453,7 @@ extern dw_die_ref base_type_die (tree, bool); extern dw_die_ref lookup_decl_die (tree); extern dw_die_ref lookup_type_die (tree); +extern dw_die_ref get_die_parent (dw_die_ref); extern dw_die_ref dw_get_die_child (dw_die_ref); extern dw_die_ref dw_get_die_sib (dw_die_ref); extern enum dwarf_tag dw_get_die_tag (dw_die_ref); From patchwork Tue Jul 11 21:57:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Faust X-Patchwork-Id: 1806520 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=) Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.a=rsa-sha256 header.s=default header.b=jYX9HSem; dkim-atps=neutral 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 4R0vsg53Ztz20bt for ; Wed, 12 Jul 2023 07:59:19 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 95CE43857033 for ; Tue, 11 Jul 2023 21:59:17 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 95CE43857033 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1689112757; bh=QmMN5QThp3uIXXaGEwuE07ZrXS41ZpCurzPBjhqwCEw=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=jYX9HSemyq90TVyBmzURKphLBuyi/n6BvSHZ6flj+W9ukQ4xxBbR81oDwFRKBYvTM p55L5nv8HBRWpjcsJYPUCrHrTslKDCfyQHlE/NrMPrCfeiOyBuyLbwLx6ZE8mbD4uM jgcHkx9Pwc8x24WKhiyJ/r5HKd6c3gCpsKMDrXzM= 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 62F4838582B7 for ; Tue, 11 Jul 2023 21:58:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 62F4838582B7 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 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 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 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> 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: 0c4iREBT0LAE7hMXd84UU1w1kvaRMvDnutdxMjp9XqSA3QzGj1PTP3S9Mh0E+AwVyoXbH9Ov2zUHxTVJNx7ZzDK2ZkX+XvdrGdaBHMR3ZoZJQ/BdvTehbeGw/PK50pvYPcXqHzxyMi0S6x2Ko6yOmpeVabvX5wynWJ2Qz9pXCFxJrF6ZqXGkaKNwqu6VUJqeFRJU8djZ0BJjdD/AEo5EF7XEH0nIMpAaPtrSbZS8hkwdt6b71wMRaD6x1qSTi8Cg5uMRseys5FnqbF0cyoIaTtP8AJ7JiyrdpdiRqTNBbdBEwln7GMggARIFD+ox+Wngk2kFaJbILPmRfCrpHKoOII3iYvPDJSdwvieLIPDixM1nTlCH/A3PZvRhcvWnSKN97vFZfWjuoo+mA4TDlfOgqfcnuG8dgXccvuEujeJgJf3el9AcO8+0gbZ8Vb55oa2NysDhPgnkWJu9asu6aAY9kFpmOs0DteVHGaXms+PhEVrm9GRsEXDAXDIKddlv5LInolcSPnDntCpQcKKIj9NGfFghQRN3hDstDqmH8iR7w0+Izmzyd41AYRQp1yOcaFvQPn+flmnsxM2pi7uudrV8X446By6JCcy0M2jInJDHcYhTarjCl4iILi5EoqLnsk5QpPS55eS6DmmBrd2Ah/hiaF4PnWmf8Ky3/t+EXUzoAN2uYWacOGV9i25sqEgt4vX40ekpDjPPRNA0dX/l/mxM+4nP4EKYPI//SfuLFpt1fsSJjSiKaQ711loyQmRMWztcfdTJixVbJvNGXSf+AJ4idPtQEFFKZxS3D4Mr3N0u1eYth8eiXlDA+KQAbXZWTz8GMbNExcQbKl80jI8GzC997oyZ+wwfQpboRFoML+7MOKMJKtlqHTOF9KovAy9oF+BH6r3G+yjpGXTM+5uvQRBCxx8dPjXWv+4Gvj6RgB03TiFu+fg76dsOFm2gaXWiTHtPfF9rnQd2kX3wL5zfqFuOULDWV6uLfkY6zyX4fWRQYYWvMJLqtJGAkPlyKnfWp0UvdRkQtIb+DZiiNiMckdZ2S0X9GQTdt6Y7xvH1ryr+XsEohGS5PlugXMrFr5CT+vA1Y8RwVBFDdOX99LhySTvOPTrYBKpc8yvjzqjdvz2zfIbU1MtKSPmQtcPz5QsnE4/iRgdBc1vmgk2HJcn/Klv0Yhcn8aVsPbH1tLFeBPP3VtjIVMMYVWZsLdRYnNWfeyAeFXuAXd9lJ3Az6DDoQC1miZaxJKSQGnyLnQ6CEWfOhKkUgAMZ9MTRcx0/D0ogB9Nyiwhp6+YjSUHal31tvO7C0TuKgPxHkLSjeFYYQqSuK4y3p8Uw5kATSXvjOvPRB2fKjUhYG0S4bJC0xHsH5qbugrouu7bgI4wYzHmHyUwf5cc26XmJxARKVz5YT5lkDWBoqCkrvy0UW9SnVCiwcOqCOIn/+ZKCq/PeAp5xGzE+ODt6sSd+08v++q/ojjgJkMSifMNWgMue2X+UYxW5fTJt2YlOhtKOaCRPk1SwSJq7KfR6aWFJvAPMdymYG6+6Sl2wHVx+kgpp1Hjg1WuRbpZ3VUo60+VAdgCCql5R80ye+GDpL3OzcleQv1UH7h23nGt/EthU6ZfVYGBb+4Yp/jvcsQ== 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 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 Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org Sender: "Gcc-patches" 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); From patchwork Tue Jul 11 21:57:13 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Faust X-Patchwork-Id: 1806525 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=) Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.a=rsa-sha256 header.s=default header.b=T54Y7DcU; dkim-atps=neutral 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 4R0vtq2t2rz20cD for ; Wed, 12 Jul 2023 08:00:19 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 644F63857722 for ; Tue, 11 Jul 2023 22:00:17 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 644F63857722 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1689112817; bh=EcqY8q1V/r7ZBnCuOB7MSRps8qxG162F8+EO9sfhGpY=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=T54Y7DcUMp275pUMNMzK0bbxEd5CZkPOoJWGxEZ/r8s0enPr/FnQDbfqLB9BMLWmP 2QKXFWStcCA4ke/2Ib+SuJGlkJ4JMAyCFWoMCkHaRjAoopiVsKqjxsEMWsmC/lJ4jH pUbqog0kjhCm7e7ieCUraak+10KYkQONBbYuNwb4= 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 E86C63858C2D for ; Tue, 11 Jul 2023 21:58:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E86C63858C2D 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 36BID4UZ015542; Tue, 11 Jul 2023 21:58:52 GMT Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3rr8xumfn9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 11 Jul 2023 21:58:52 +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 36BLw8RL027105; Tue, 11 Jul 2023 21:58:51 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-6 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 11 Jul 2023 21:58:51 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nqyZWrywtadjAsrBC62dHdAaSm32h2ICbLT8zUbZoURJOMRrE5xmEkgFUY9682y/6LAgzYAQqVPgNM2p+jO4q7bifh3itvqFKWC+2zQJ3PrWi3mTzZAUHQmiXVVBvTWIh/Jwtr4eu6CdfWKjOt1p92VXOgho3D4dDgN6XUNySNWm04TGgkkYer84w117y+BfvCqo4Z3Ru06z0QSw+5LOZ5tII1SAB4RXaCKfEIqQksdz1zzUALfSJwONltWgfLVt4jGFZnlaegMC/dRd6OZpgFFcd/J9o1CfoNO8vZvvKeL9z8vCHgU8LNm2bsMI2UXNjjHNlsAZDEhqYazXAg6v0w== 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=EcqY8q1V/r7ZBnCuOB7MSRps8qxG162F8+EO9sfhGpY=; b=TQtcov9yt6b+Hcfyqe2Y6duUHz8NC2Guh6BgpoiAnxeowBISLjQNTzRKKW1HDm716R7mr/A19siw9KxVVcwoeX0j4RDWsDAhb7lXSUO8q595Wv9D0v5ZxT/7A9RuIl+phE4eR0vtGQl8+Z7v1x7hrv9GFUjZeKcyiqFFkzxp6uRsjB2D1N0fbrxFdLpkPSFcD0N5NlBWU3mT/kOO6vB7JFPrB2ChUkovSJ0+8Np6kGc3cuNuW4KhdAx/ou6jxFl98L7hlqzIt12gaVrju53dJLZ/NqQC9qycRa86swxaV9vuXCq0tBeJZZwTiK9lK5Bzg7dWQ2HN/Fx/B2aWoe4oBA== 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 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:48 +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:48 +0000 To: gcc-patches@gcc.gnu.org Cc: jose.marchesi@oracle.com, yhs@meta.com Subject: [PATCH 6/9] dwarf2ctf: convert annotation DIEs to CTF types Date: Tue, 11 Jul 2023 14:57:13 -0700 Message-Id: <20230711215716.12980-7-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> X-ClientProxiedBy: SA0PR13CA0025.namprd13.prod.outlook.com (2603:10b6:806:130::30) 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: dcb6a588-6f56-49ec-c178-08db825a0105 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: GZfvx2YzQaIqp2S5nhH44aoxgzCI2geVTs6izw95aWikUcQmgMAkYVB7GFsIGhOKWB3nCHJPWgxksh6rpH6eSQMQpGMekjaEJjSK6CQ6TREvHHOc4PoAHBTAxUVf7w6ryKX6Lld8WSXYCGBSScV+B/0aIQnw7fml/n877kwdDK8mRVHF4m4Ame5dfE6RnycEu5iooQ5J2NZ+xCogI35VS3OmnpN7uxDtsKydbpQuJGXTi3b1B4umEVPuC+nZn83c2RsJ6YcjI3tfEd8MG89/b5PqG1nBFC70K795xdwfG9yetscTbOPE+pBZXiKZ6rMaJFf5OUe77KYrLoqFge9T7b+8FeMr2YaqjHOa0EaI7ZOObJJYOY2pPH1fprUwepvBOpORA0TNuQEEbLYcwb/Ql6WHwtY4BgjZ9vyYJFXz+kWcgofppvmsHFmCz2fodvE2dAgv7teMEiYYJsGecuiG/yqEjU9C0YvKZhz4HwSmX7YkfbQZxemALRYZbkGP7fhtQgv8IdgqwIIybESMKrFVzhCbesv7kDfvggpOg+3o236z7aKUaowk9hTcf0MsNYCS 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); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 75B7NAe/mkRlmpnY0DdsdxjCXlgz7m8e4iWizY5dzKZf7MblNxAw4O3apu60dwbsaf6OXzlZgUzZNPkobpgz6I+tRb2SzjbDtuJQMVeCVvZRPLiItuh+uJlco2XTIdPnozuHtwCysw2SQ17VkSdmbLtPMfUT7x6HPSzafB+w04hvhmhfZr/cAMb/0Yg/COaVKqwksQLlWiNT3NOTOArxh6+/2ea9Ve78Y+l81h/7R3OTleqnjnSOsJI4zeb5iiDzPYDKyEsrCvNWpcgublvJpXStjMZu4U8ap3bK6MkQlnAPFc4r/3ol10vVsG6NC9qhKeGXTu8RY+1xcjhyZJFV9omiluxb6xtX2M4Xd/21dFxH7LLKcs9fpJ+fnGr1vtgHjWyNh9PGHNa2MWth6p/LIXqfjQAzzXhVTSD9vIyk1ILX/FSGrlriNelrZCYw4c7IrRknNVOMFO2SL1q65fWn5+KxuhEn6Jz0/YvdlQLchZ9ACSA8PFpOjWP2Fo8axZuAmIhShsFpwlbAsYBQApwm8Po9S37iNuiWO/EF8LbeLbDywEqQoOeMYcHzt+2VJxN6AdTd2VQfS5wJAg9sL88lgRjJO/rWlJ5I2BUfLdmUjhaL+jkTMIsly+MeGx4K1lD0o8r5sVS2HbFInLa06rhTYoHlWp2SsBEWM/NtBx1JP/SO5oMRlN1eqEm0M9TF9WNvUNse/NEpy6o9mG//EK30YhVIBQsKC2tT8wRIpKFjDKYALgqG6hy5vfad22Vy+dRer+GcEQVa/sCwoUPIQgD37BdXhtnLhdoJaUE+Hk6t3DV6lQ9RNBXPPtL33D2qTRvAoG8nxSyzAvxMNqeeYanUUivx3fEt0cbFRHycKJgZfJFpqNdpxNVGKanLgIWnSfOgDrjeS3XEkFkla2QTgE9HY7i7dh4S1wECs5NwLr/dAizfntWYZO+ssq35E4rPiWmUQkMPSUN7rZ18O2vSCni4I0joGeq41tfV+q/movHuBLFc/eeefYRXgQ844qRxd6Kop5sZN2UW6WKjuUMyio30oy/jE8ezKgh7BiFX1nQpTJ937J6lunmzaE5pCgODFUerp4wKBooaVh3JM7E2LOlEtc3OH9oLb8mQqx/aZBh8rmZBvBW8NoChyjmA84zfgqMrtW5tEeFWJi8X0NX2NbOAYbt5FJY1twICUe1p3P8fXfwdBezYvxz6edoXNDu9aMf5FvbSwXM9kfye/xJwkCqSEYiRtuyW5CwVOmN1kRtS+ZAZpWlGzaUm2PznxLDJBX1XPoD0IFLuA0UaqJJ7a9fnm0YtTmmVFeAK+FyISGwNcGcWSNXTx5+ulF9Zqy3lIkWXqxNLvAoI2buSttyk7zwWZZ6Pdk0aNosHhvIth2lb+6IRWLeIrQOXrPIcaK9uRtUep6Xhl4bveJ3RAxt46wMN5dew7syIJ8J+zjDWQJZREOJxMJ2dMsgmD59QIhaXGP92HUVyyY/K5mFrOzFCTF8mWANkx3SGcsCTwhJRloVdHgCS50EN4x1Qfi2Oo0oi0yTPcq7xA4+QNoR88GY75g1obzAqMMoBRda87Hi5pL+698R5pBCskOcFWkzL+U4+xJc1SWZLDhZLvZHwvVcEMA3h3w== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: S3ICWWh0TmdysJ872QbzWsukjttd8aGDwrlPtVuMgBXjWwguHPrFte8YRO74tFfzT1CIbbOh2Cw+EsxC0rvnYaOZWt7Wdj0dVuWpO8J9A4/oKMwIF463jOY0bC7fqEKsxw9kOxuiBy4GMwQx/UkWE6943TGGvvKXbWwTOPA+Qat/e5sSxgDXc9Yrs6fXa6nV4uk4jZLk4sCyJqEzPov6QowuA+rYkoC3ZVGyOGk5JDkweo44AbbjkcH5DdhLh0dLEGlUkktApwPDwaayj7U58J6AdFdTvo0GZsnETbloRdRfy6uwv0mf8PSDgjB6rX39oFcaWIFY0I4aIqiDRfrirURVPeQYwGnAL9ZiiM8vLIPMnkWrYXkW8PG4LvYWH9vSGf14FC/wj41TBEJmaSygJV90PPT1niPcF988H1/DekCTE7yVn8KZ/Ie6UUP9N/mW+af6eyOLNywUE7Cv4TjZtzlZJGSC27Mln98IhjvA8OOwx4wJ/fC6c0ViTzz1P56fLPJDo2sOCgR3uMRzzSLP9gkg/RkvEiq4N9Qzyr6LrNp8Q49siC/ViQFJbnSPyDhFlFELCIlJ9k9wO7ysH+6FkFcIxumuyzDJtAyxpxLBXcEQe1en6qIyZd8yMHYOrlcbjmbLBpbroQPmUG2haAT79gZbvWMkYXqMe9k7DmHoTY+WDFutGjndniEz2tkS9XtSTT5LVN93TIL7uF1o3NOcZN30OSqjFz4+y9tBVPM8VN978XGqgqN3WA8Qkdx6F6WOx30b0sG5HwEMmrO22p63kA== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: dcb6a588-6f56-49ec-c178-08db825a0105 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:48.1196 (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: niWVOiMgyr43ytfCRNIHXxp3UxSi6WnPozNwEUXm552VB5Mxp463awxuRKnVNkFezq+AjGgD4WbWre7JU8mzqQ== 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=832 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2307110200 X-Proofpoint-GUID: GW7P7c167FduYjEFZ0SiruMSKQmBWP5k X-Proofpoint-ORIG-GUID: GW7P7c167FduYjEFZ0SiruMSKQmBWP5k 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, 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 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 Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org Sender: "Gcc-patches" This patch makes the DWARF-to-CTF conversion process aware of the new DW_TAG_GNU_annotation DIEs. The DIEs are converted to CTF_K_DECL_TAG types and added to the compilation unit CTF container to be translated to BTF and output. gcc/ * dwarf2ctf.cc (handle_btf_tags): New function. (gen_ctf_sou_type): Don't try to create member types for children which are not DW_TAG_member. Call handle_btf_tags if appropriate. (gen_ctf_function_type): Call handle_btf_tags if appropriate. (gen_ctf_variable): Likewise. (gen_ctf_type): Likewise. --- gcc/dwarf2ctf.cc | 71 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 70 insertions(+), 1 deletion(-) diff --git a/gcc/dwarf2ctf.cc b/gcc/dwarf2ctf.cc index 549b0cb2dc1..b051aef45a8 100644 --- a/gcc/dwarf2ctf.cc +++ b/gcc/dwarf2ctf.cc @@ -32,6 +32,9 @@ along with GCC; see the file COPYING3. If not see static ctf_id_t gen_ctf_type (ctf_container_ref, dw_die_ref); +static void +handle_btf_tags (ctf_container_ref, dw_die_ref, ctf_id_t, int); + /* All the DIE structures we handle come from the DWARF information generated by GCC. However, there are three situations where we need to create our own created DIE structures because GCC doesn't @@ -547,6 +550,7 @@ gen_ctf_sou_type (ctf_container_ref ctfc, dw_die_ref sou, uint32_t kind) /* Now process the struct members. */ { dw_die_ref c; + int idx = 0; c = dw_get_die_child (sou); if (c) @@ -559,6 +563,9 @@ gen_ctf_sou_type (ctf_container_ref ctfc, dw_die_ref sou, uint32_t kind) c = dw_get_die_sib (c); + if (dw_get_die_tag (c) != DW_TAG_member) + continue; + field_name = get_AT_string (c, DW_AT_name); field_type = ctf_get_AT_type (c); field_location = ctf_get_AT_data_member_location (c); @@ -626,6 +633,12 @@ gen_ctf_sou_type (ctf_container_ref ctfc, dw_die_ref sou, uint32_t kind) field_name, field_type_id, field_location); + + /* Handle BTF tags on the member. */ + if (btf_debuginfo_p ()) + handle_btf_tags (ctfc, c, sou_type_id, idx); + + idx++; } while (c != dw_get_die_child (sou)); } @@ -718,6 +731,9 @@ gen_ctf_function_type (ctf_container_ref ctfc, dw_die_ref function, arg_type = gen_ctf_type (ctfc, ctf_get_AT_type (c)); /* Add the argument to the existing CTF function type. */ ctf_add_function_arg (ctfc, function, arg_name, arg_type); + + if (btf_debuginfo_p ()) + handle_btf_tags (ctfc, c, function_type_id, i - 1); } else /* This is a local variable. Ignore. */ @@ -833,6 +849,11 @@ gen_ctf_variable (ctf_container_ref ctfc, dw_die_ref die) /* Skip updating the number of global objects at this time. This is updated later after pre-processing as some CTF variable records although generated now, will not be emitted later. [PR105089]. */ + + /* Handle any BTF tags on the variable. */ + if (btf_debuginfo_p ()) + handle_btf_tags (ctfc, die, CTF_NULL_TYPEID, -1); + } /* Add a CTF function record for the given input DWARF DIE. */ @@ -850,8 +871,13 @@ gen_ctf_function (ctf_container_ref ctfc, dw_die_ref die) counter. Note that DWARF encodes function types in both DW_TAG_subroutine_type and DW_TAG_subprogram in exactly the same way. */ - (void) gen_ctf_function_type (ctfc, die, true /* from_global_func */); + function_type_id + = gen_ctf_function_type (ctfc, die, true /* from_global_func */); ctfc->ctfc_num_global_funcs += 1; + + /* Handle any BTF tags on the function itself. */ + if (btf_debuginfo_p ()) + handle_btf_tags (ctfc, die, function_type_id, -1); } /* Add CTF type record(s) for the given input DWARF DIE and return its type id. @@ -928,6 +954,10 @@ gen_ctf_type (ctf_container_ref ctfc, dw_die_ref die) break; } + /* Handle any BTF tags on the type. */ + if (btf_debuginfo_p () && !unrecog_die) + handle_btf_tags (ctfc, die, type_id, -1); + /* For all types unrepresented in CTF, use an explicit CTF type of kind CTF_K_UNKNOWN. */ if ((type_id == CTF_NULL_TYPEID) && (!unrecog_die)) @@ -936,6 +966,45 @@ gen_ctf_type (ctf_container_ref ctfc, dw_die_ref die) return type_id; } +/* BTF support. Handle any BTF tags attached to a given DIE, and generate + intermediate CTF types for them. */ + +static void +handle_btf_tags (ctf_container_ref ctfc, dw_die_ref die, ctf_id_t type_id, + int component_idx) +{ + dw_die_ref c; + const char * name = NULL; + const char * value = NULL; + + c = dw_get_die_child (die); + if (c) + do + { + if (dw_get_die_tag (c) != DW_TAG_GNU_annotation) + { + c = dw_get_die_sib (c); + continue; + } + + name = get_AT_string (c, DW_AT_name); + + /* BTF decl tags add an arbitrary annotation to the thing they + annotate. The annotated thing could be a variable or a type. */ + if (strcmp (name, "btf_decl_tag") == 0) + { + value = get_AT_string (c, DW_AT_const_value); + if (!ctf_type_exists (ctfc, c, NULL)) + (void) ctf_add_reftype (ctfc, CTF_ADD_ROOT, value, + type_id, CTFC_INT_K_DECL_TAG, c); + ctf_dtdef_ref dtd = ctf_dtd_lookup (ctfc, c); + dtd->dtd_u.dtu_btfnote.component_idx = component_idx; + } + c = dw_get_die_sib (c); + } + while (c != dw_get_die_child (die)); +} + /* Prepare for output and write out the CTF debug information. */ static void From patchwork Tue Jul 11 21:57:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Faust X-Patchwork-Id: 1806528 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=) Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.a=rsa-sha256 header.s=default header.b=EQfR/TNM; dkim-atps=neutral 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 4R0vwK4wV3z20Ph for ; Wed, 12 Jul 2023 08:01:37 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id B17C7385141E for ; Tue, 11 Jul 2023 22:01:35 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B17C7385141E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1689112895; bh=wRlVaPcq0OiU0pL3k/GuNeE5PwqmwTWHrhnrHN0QXjU=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=EQfR/TNMr7fVb5XYS7/y88QCzun8HJwiVsev7FJtx/L+C4nhMPRjWVl83iEK9bAhM I/fLGqPaEtDxvoxlASEAoWrVARAoSS/bMPzenLo37D2+UzoSpij5kcF/ZW0LbvNB/2 SqyTHSglyvQk/7c2k+vmDHYmb3IyEJbCAahfqKhI= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by sourceware.org (Postfix) with ESMTPS id 733583857727 for ; Tue, 11 Jul 2023 21:59:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 733583857727 Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 36BICxqA019634; Tue, 11 Jul 2023 21:59: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 3rrgn7ut7m-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 11 Jul 2023 21:59:08 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 36BLngoU000704; Tue, 11 Jul 2023 21:58:56 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam02lp2045.outbound.protection.outlook.com [104.47.56.45]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3rqd29sx51-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 11 Jul 2023 21:58:56 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cU2ChDX3AmUeSwFzu7vIHq5fSLcdxpl/lgP5oQ8cwEBc0M8uNaFzxgPoHJOGDJUnMzlOvLsfv7FTNC3XIiwmZ46QW4/dxLD6ku4hPcYfG1pKLcss/BCiQhjv2fu9Cz5YUiep4oQmwH2MDekAR0kv0Wfpma/3Lo+jQ+TrzZelcm9GfwKsYUfzLhZI9hF6Q4FBzoZ4QDiVo2U1krZpiK7uwqOJlne0KUHCi6GGF4UqlTBaQGcffbMh2UEUDCu/ehKDuaETMKYZdQ4d+uceMP/vBkvyk9jLiCmljGG3GKG2yI0GmgM7dZl4FxwaZEMuNMOlK05wZInT9gvnWd8mqeumxQ== 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=wRlVaPcq0OiU0pL3k/GuNeE5PwqmwTWHrhnrHN0QXjU=; b=FhFEemDHwu0lpyTCt26U8Avs4Po11jksHdpHCoUuOfsO9LEhRSkm09IZcj6ozEpVcUIcxNEglK24I1CRZVN9DeyZsxgmkY0YaP+56G4j9c/PBvqPod+KB5Q7J8ADbHwH7Si6rN5fKMMMzxJ5mtzXqKPyx3Oz71o7wvagsJpz++6M56B4ADhYZRk2dqCygLIPaT2YmOlO/vIAQ5XmCmih2zuSay/v4amZ9gOFpArsv5JI2tUK+tsW1dqWZoIjTePDuNhHrHFIKsb3XGvV4+rIHgCL1pj4uKsXkG4hQeeb+qaLqBF36AC5IqQxovCp+ECbOhle6OzRzF9bmIZSJolNMw== 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 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:54 +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:54 +0000 To: gcc-patches@gcc.gnu.org Cc: jose.marchesi@oracle.com, yhs@meta.com Subject: [PATCH 7/9] btf: create and output BTF_KIND_DECL_TAG types Date: Tue, 11 Jul 2023 14:57:14 -0700 Message-Id: <20230711215716.12980-8-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> X-ClientProxiedBy: SA1PR02CA0008.namprd02.prod.outlook.com (2603:10b6:806:2cf::13) 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: d0d50cf3-8031-43b3-3597-08db825a04b8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vHKHrwMKZMoJ5y5rGaNll7cmLn24zyA8kIM1DWYxOLhAKmDDxTdARLlpSS+u8DkWDG0rW5VS5wSKZtd1HHHf15VRQSxEb4ysksWqIDVlNtcGpkVzMgZMJXGSNx0LtZjec517sPmewJfrdFTLdCV6qNrcFOSLnxl4dntzZtlj6JOzwWBgqXJXJxrLeuMHwkE9klbG4+0xxw9yOs7W3OBrJktmD3bWle7+/jKlX8zZoTGhEjjMTVAX+6nj8ZpREB+f33eYkioodulCCgeqx71TclFjxhe0zkY7aFYrsuk9nxGIFLhf+Euj+x6r575Dfs3QsLG59fkaarUGZo/15w1KOudDgkt7KXOxIQfll/gSoWqaVLOKpJZChgWxBB2S/pQcKv/ObeocFoBnbN2CgEzKt33acJdq20BuLuoZ78xeQIXTGS2rK4XqLkCYOxMawV9nYi7eHAHdemfZ9NY3IzU/y5yHjpT1NJ+TErEBtDUfacdUy7KAImyVLC9KqInU+14QjYyPaGgJuu8xsVlPL9IaUYnZ/0e6mvj7RJlXGSC4Nx65fBohO4L5WdHleLnsq311 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); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: MfvK4VcP7Dv7rBDDaX1QtA0cUbfeQSDSLrcMzbMo4IQCtQartHyPQ31mwRZy3ETCU4+nnJfVUuyxkHOEr18+t5EPV7k9y1kJGZr16nfT87ExboBeeIM7ZQLxUEx+FZMgzxb0RnCKtvSFHkWV3DNfsTECKJbYD9S5draLC/u22J42oOF9eBfCelvghQO33sQK9Ih9VIJtEub9SVx+2+zRSpiZvOvRgR7fkITSkBwJQvjNvyx2uogLQ+u7pIvcz6/p76Nef/gnfX1F6dPTWtFvTgs/iaElMY82A11+olkMgQ4rNnWoABEOrPwwtV5V/uvSc511hyQU1i0nI0ScRzJUCOnbWuhqio+JnEyTOpWCWY/ZGhfXx+qIE6qBcuUQN8VQXAVP5jA3VVBOdmNHgiMntKmhpVLbedtakQ6IQ5BVWw6B6rOUA6ekfp0EX4gi4cQrYRHEOyJ9mV/cpVj5jKOIQZ+sBI5sPcFPBwV8Hu3Cy+iTd9V1GfwmVbz/iEbduyqc7JWbn/YFx3EeIAOninBJZ754wXSZxOQGfwb7gPVcpKReuoccbZUJRk/3uDO6yLmQQ8CswAlY2WSFqMp7M2JD0EP+mKsXrO/iN0Ox9IzhRlKFFuhijdD6RbNO1+cR+ixOuhBcdqKcE6O8GVFlcFvQ/vg3hQZIdnm31SVYqh6F8xhIHqw96bi/8eEzYLQr9gulyvtkMhWQV0pTG84fclIBDiPZ74oj3VaaYoeNZGNanl28dxXNstilzwFJe8tusOpRoT/dzrjZXuOswA0pkR2hHW8/SjWfXREP4vHWPm6JnFCGopY6l6qacad8DSS32HRx0Z6IgDoIySbZXpyTGsOVrmwpksClZmbX7He4RaJIWSW2jORAWELlIRFWCSTKqcuV4s/TsrNXEfhrDS90YZqUWvXDP2I+/2z3fFs48Xsfqmc7yCubft9AQY7QNDN6nIUmDEXCbXvq6kpcvSYTcOX5k371bXIXEGfBQ8fJ4/NxB8coNxt7Krbt/9oeLqWjWKkHBKZM82LXGd4Ajv4pUGtEMNBi8p5eSLlDdNXW5iCu/KXcsuhpwkXrcjfPGNk7JgMUdXfy2IHP/SVwgZAbyUKdTX49WRMeCe7XH9XbNlDZNQOO9Qgl4QzErUhk96CJJ7Q2Pypk7oYSc6fElv+ff68I827L+Vu3BaVVaYkGHGX7SXwtgw1kB+iA95YflZMKXwW68p+ZoTOpV2+FHUCEeC2PHynNsNehEElCyeC8KVMd40zHYzEJFeTUPeVHuTnOIk1zwSyGRH35SNCzUC0zUYfb+k8uFTwhYHBU+sElGqPV5LNtVOQG8Sxhi+ETzQ77Dfl0wMNrhWDIQhI4ox5ubJ6bpAP3uMxrIcw4UDKgcThDfYK9Tv1KcUru3SpNSEcw5eVXl5J4kMeniAghuAvHrccuI18RNKdk5+1kqtxhoOPRZFqDXt+O6TDnCW9YqJ+4Od5tQ5rQ+jMPPgy7nZtykgYF6h6sUjlRapOsAiklVMDrvDb2ZjOm2se4Q7IVOMAwBU38ejDBpwLir9x3E6AmwijD3DdyCY6YXHv2W7c+E8RjfCOkk6ViPag7PX4KqcOgnKB4 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: P1zQskzt3HH3Ydqtc2QTG58bUP4AOuMOe/kHQRoAG04Lr4hw+M4+XjS+qGgI2yJnLU1cFOdxFKn+d4wfnZisXrZSNMJ31b3QlcUzwf1Hoz4Km8BLD95QKtuqECvvfpzSsIBek11DmYCeNv1TSEsZCTSsTN6PEe6ZUoFLSdqDcLMHTC7Rw3MjrFUk1qposTmul7MdIC/CUSscDqWxdoG3rCgmiLMpM4O7X5+VsneGosHcTJea9vkwNbciJ8UIqF70z6dPp1Yt0y0CH0M36CyAWWkRZ8ZC8a3EKz1H4A9+JYN2fE48y7/Fetq9Liyx7ua4lmXYRM9DFoDWN2GoDGH/vAPOHCZfqCQLljPx3B+3en7iGXE9KyS3Kp3eIFN0gvca/PAxYhr6NzKMYbYxlMfuaQBjITEZtl31lH1RmpGA9sg7UZSONijN7Keqr6EEnCzlxFqr2ILoIeisvuwpbOU9yTWhbW+RoxDvF5eGdmv9XM0lUHwyVLE7bCeIg3FkrYXkNQdqXRl/06rY35nQG9ZNy21kISphDFnGxim0yjl6oiUoR4nMiLIu9IlRydmIB0nZVu+ylSHpG0STlhuHMTXtP+v+9fw7vneL/zhsRaqnjIQjeJ4z9IQtmDmY45ocqJL/mVLealmB8R+btMYq743w6l0uG7fBFFQeeozO3BGy9dV+Qq4n/P9VIvCJqDrofJ1OgnRiEEP7haikPhyWa/6piN8QtdnBSOVxe1hZKZcrXJ2K2Gia+DraSx26Pd2vjsyT7INau6QUl8Jp7yvt+dR5pg== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: d0d50cf3-8031-43b3-3597-08db825a04b8 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:54.2442 (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: RenuKLvNoHKpXrKg0f7IjWwYUutAcssjndZ2mYY9+tlmUFu3tgwq7CKmMM7kYy4DqeUqlk9hMFtPecXplsu4Rw== 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 spamscore=0 mlxlogscore=999 adultscore=0 mlxscore=0 suspectscore=0 phishscore=0 bulkscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2307110200 X-Proofpoint-ORIG-GUID: ic95DBfJJAqfUb5mmBKr4Y2U3qXaNpds X-Proofpoint-GUID: ic95DBfJJAqfUb5mmBKr4Y2U3qXaNpds X-Spam-Status: No, score=-13.4 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_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 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 Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org Sender: "Gcc-patches" This patch updates btfout.cc to be aware of BTF_KIND_DECL_TAG types and output them appropriately. gcc/ * btfout.cc (funcs_map): New hash map. (btf_emit_preprocess): ... Initialize it here... (btf_collect_datasec): ... Populate it here... (btf_finalize): ... And free it here. (get_btf_kind): Handle BTF_KIND_DECL_TAG. (calc_num_vbytes): Likewise. (btf_asm_type): Likewise. (output_asm_btf_vlen_bytes): Likewise. (btf_asm_type_ref): Update comment. --- gcc/btfout.cc | 79 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 76 insertions(+), 3 deletions(-) diff --git a/gcc/btfout.cc b/gcc/btfout.cc index e6acf4e51a5..087d0b40e0a 100644 --- a/gcc/btfout.cc +++ b/gcc/btfout.cc @@ -104,6 +104,9 @@ static vec voids; created. This vector holds them. */ static GTY (()) vec *funcs; +/* Maps FUNC_PROTO types to the IDs of the corresponding FUNC types. */ +static GTY (()) hash_map *funcs_map; + /* The number of BTF variables added to the TU CTF container. */ static unsigned int num_vars_added = 0; @@ -153,6 +156,7 @@ 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 CTFC_INT_K_DECL_TAG: return BTF_KIND_DECL_TAG; default:; } return BTF_KIND_UNKN; @@ -316,6 +320,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; } @@ -425,13 +433,15 @@ btf_collect_datasec (ctf_container_ref ctfc) func_dtd->dtd_data = dtd->dtd_data; func_dtd->dtd_data.ctti_type = dtd->dtd_type; func_dtd->linkage = dtd->linkage; - func_dtd->dtd_type = num_types_added + num_types_created; + /* +1 for the sentinel type not in the types map. */ + func_dtd->dtd_type = num_types_added + num_types_created + 1; /* Only the BTF_KIND_FUNC type actually references the name. The BTF_KIND_FUNC_PROTO is always anonymous. */ dtd->dtd_data.ctti_name = 0; vec_safe_push (funcs, func_dtd); + funcs_map->put (dtd, func_dtd->dtd_type); num_types_created++; /* Mark any 'extern' funcs and add DATASEC entries for them. */ @@ -449,7 +459,7 @@ btf_collect_datasec (ctf_container_ref ctfc) struct btf_var_secinfo info; /* +1 for the sentinel type not in the types map. */ - info.type = func_dtd->dtd_type + 1; + info.type = func_dtd->dtd_type; /* Both zero at compile time. */ info.size = 0; @@ -653,6 +663,7 @@ btf_emit_preprocess (ctf_container_ref ctfc) } btf_var_ids = hash_map::create_ggc (100); + funcs_map = hash_map::create_ggc (100); if (num_ctf_vars) { @@ -709,7 +720,8 @@ btf_asm_type_ref (const char *prefix, ctf_container_ref ctfc, ctf_id_t ref_id) else if (ref_id >= num_types_added + 1 && ref_id < num_types_added + num_vars_added + 1) { - /* Ref to a variable. Should only appear in DATASEC entries. */ + /* Ref to a variable. + Should only appear in DATASEC entries or DECL_TAGs. */ ctf_id_t var_id = btf_relative_var_id (ref_id); ctf_dvdef_ref dvd = ctfc->ctfc_vars_list[var_id]; dw2_asm_output_data (4, ref_id, "%s: (BTF_KIND_VAR '%s')", @@ -831,6 +843,59 @@ btf_asm_type (ctf_container_ref ctfc, ctf_dtdef_ref dtd) and should write 0. */ dw2_asm_output_data (4, 0, "(unused)"); 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 = get_die_parent (dtd->dtd_key); + ctf_dvdef_ref ref_dvd = ctf_dvd_lookup (ctfc, parent); + ctf_dtdef_ref ref_dtd = ctf_dtd_lookup (ctfc, parent); + if (ref_dvd) + { + /* The decl tag is on a variable. */ + unsigned int *var_id = btf_var_ids->get (ref_dvd); + gcc_assert (var_id); + btf_asm_type_ref ("btt_type", ctfc, + btf_absolute_var_id (*var_id)); + return; + } + else if (ref_dtd) + { + /* Decl tags on functions refer to the FUNC_PROTO record as a + result of how they are created. But we want them in the output + to refer to the synthesized FUNC record instead. */ + unsigned int *func_id = funcs_map->get (ref_dtd); + gcc_assert (func_id); + btf_asm_type_ref ("btt_type", ctfc, *func_id); + return; + } + else if (parent && dw_get_die_tag (parent) == DW_TAG_formal_parameter) + { + /* The decl tag is on a function argument. In this case we refer + to the FUNC record, and component_index indicates to which + parameter the tag applies. */ + ref_dtd = ctf_dtd_lookup (ctfc, get_die_parent (parent)); + unsigned int *func_id = funcs_map->get (ref_dtd); + gcc_assert (func_id); + btf_asm_type_ref ("btt_type", ctfc, *func_id); + return; + } + else if (parent && dw_get_die_tag (parent) == DW_TAG_member) + { + /* The decl tag is on a struct/union member. In this case we refer + to the struct/union record, and component_index indicates to + which member the tag applies. */ + ref_dtd = ctf_dtd_lookup (ctfc, get_die_parent (parent)); + ctf_id_t ref_id = get_btf_id (ref_dtd->dtd_type); + btf_asm_type_ref ("btt_type", ctfc, ref_id); + return; + } + + /* There are no other valid places for decl tag to appear. */ + gcc_unreachable (); + } default: break; } @@ -1177,6 +1242,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; @@ -1384,6 +1454,9 @@ btf_finalize (void) btf_var_ids->empty (); btf_var_ids = NULL; + funcs_map->empty (); + funcs_map = NULL; + free (btf_id_map); btf_id_map = NULL; From patchwork Tue Jul 11 21:57:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Faust X-Patchwork-Id: 1806526 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=) Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.a=rsa-sha256 header.s=default header.b=vOKObmwG; dkim-atps=neutral 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 4R0vv8096sz20Ph for ; Wed, 12 Jul 2023 08:00:35 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id EE5783848BA9 for ; Tue, 11 Jul 2023 22:00:33 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org EE5783848BA9 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1689112834; bh=IJCBNaPhqdaXgaQ0VkVqNMhNHqiJz05pxlEnHiXLXz0=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=vOKObmwG8jiVKYhKUUH9RmO4uaMXiCF+fdakksR1or8idQ50G5IsaVnstA/Lq4YpL NTIxb/a3bOT6y5E3lqGI4MtVZ5M1LnRAxepY8i+5hZPxPgflskiwSK+qRpOda3eT1j b/AZJ8ETzwKJjKDcmj6XYonEl3AfU/QstXyOdGTg= 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 03F6B385700C for ; Tue, 11 Jul 2023 21:59:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 03F6B385700C Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 36BIDAvZ015513; Tue, 11 Jul 2023 21:59:03 GMT Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3rrea2v17c-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 11 Jul 2023 21:59:03 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 36BLuniw033177; Tue, 11 Jul 2023 21:59:02 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam02lp2045.outbound.protection.outlook.com [104.47.56.45]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3rpx861ch0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 11 Jul 2023 21:59:02 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TE8GeQ/1Ku0dMgCbu8uZMCcJsSw79LZgGeC//N7pE5RwQsM7U095pM3N5niGSwQDqxfoxAw/xpJrx/X+EU1iQSpUlVwfVupXYU1Y5QGwU9jWGk0csyIDQ5nOPP4WzfMGijJzkDTsPRo1EX2TCN0Vv/KPDn7GKDRzL7A7bKdWdrIQqf8gTz3xQTBhdHERIui0P/DsDVCtkYx5plXjEK9tLyGzd++EeDe5nYoA2YwOk14SB1fEvRypzIxiGc0oKMoj1emzVDsDes1o1HnFOgwnUC0g7jzeSIAiVcKrzQ8G5nszi1b9fOhCQlX9QqNl0ytFcGkk1/cznT9hXibUSiHB5w== 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=IJCBNaPhqdaXgaQ0VkVqNMhNHqiJz05pxlEnHiXLXz0=; b=HXDde66FbvWZDjjW1e0jBnYt5frm+S5O3pdy5SirnIZhsToplvkylxFHR+GPTQXAPd/Dp8RJSNdLGLvaB9H3B775+IJtvuz60TwpM8PYzjKTFVkJWm2OPgLKOXiA6b16CkKPCW+VpxrAsmSNoOarL1bPjIyNIuTIITCGito39PIq2PCmRJ9rz6WfqWDFdYZIA7WmPZRHvrNOOY62d8Z5FZkZ2iQxV8pobhXgoC9icdc4PJLOM08RuB1AHgSFLYvw9l8P+KptBUw/vUlpEsG4MGR21TNfC9lKt4SqCHfjnLQ/A/i0indieUS+d9L/PuuosRDBhszmhslmwSfFCuIrLA== 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 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:59:00 +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:59 +0000 To: gcc-patches@gcc.gnu.org Cc: jose.marchesi@oracle.com, yhs@meta.com Subject: [PATCH 8/9] testsuite: add tests for BTF decl tags Date: Tue, 11 Jul 2023 14:57:15 -0700 Message-Id: <20230711215716.12980-9-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> X-ClientProxiedBy: SN4PR0501CA0072.namprd05.prod.outlook.com (2603:10b6:803:41::49) 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: 7d82228e-696b-4bd0-c438-08db825a0801 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ZwFaMW43iK9TaLVM5ygEvPTxUTLEZWQtZsXvG1HrrEXLm9z74sy4djuRPklbaDIy9XLEx19Yba9W3Bjf9vdDOfclLF/Wq8P8nhT2DJzTRt9BH6/jubMsTg6dFD8LcOxMptshRXGmRsYhpHAoqipDAzNXZzUGPCm4sQrtUZ3I1SZcXrD42CjhsS3zh0BeUY7VRgPIJ/nsMrg5Eug6EPwUDuqznHTn1OIvg8Qc5CfQeqk7VJXLaZMBOuuext4Wz2MgEihf4qpfWntz40OnLVoaeR5RgxyfWz0BnV1mV53Bm5pME86XfG4Qz+aArcREdi9QDRBKkZqS7gxx/uNWZ69ujFrRj8GZ8RJ5F4OcRy9xjfP77b+2rgL8Zy/oijjg8UqqGopgulJ+L3sqHgwyc7U1JN06G7TzBWa0SV6Xj1DuvIXBjAJ/9FPPVUGOKae8erhYb5NUyT7mZebYRknKZtzM5fwsGL6S+bzPqEn7gA2YDb4wwvzy7N8+8vAvXGeTdXJfCKe0Vga6DbftidBtWdYtjW/aBxKOnFTWdXa88Ov6jVqHP42RN0iZ2NIiJtNrIoJYd2t9EXaZvGvlJbx8eldlRg== 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)(84970400001)(86362001)(38100700002)(36756003)(6486002)(6666004)(6506007)(26005)(186003)(1076003)(6512007)(2616005)(5660300002)(2906002)(316002)(66556008)(66946007)(66476007)(8676002)(44832011)(8936002)(4326008)(478600001)(6916009)(41300700001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: qNvB5kM6X1A+zU8VSmTcIAE2IB+yZiIotUQ7k1tHC5wdJx1D7n8nfK0CuGPNtWxfxV+5QZ3kw7yZEzSfWv6THipFR8KmySZtjCa0bRjGHn0NFHpw5Fja46ynw0lOTerSf2eeWBz8voI5WTushNYZxqkqLwS/PBU9v/cXZxA6rSSK+G91KKTrcheV0w1fjoYm41LhqDDLQM6rr16kRpYXH4JJe9bVNGXHot/OGbU20l3mVHB+qfBXCekv8vi0HWNMOB4IBiJ+ZlckhzlXrghGXqJEOoZXvL22EnFrzib2w+CDFqhMUdwBKVkdQp3+tr1B9V6zpelADV7WQwvqrH8F2iykMAZr2HJG20u3j3MfmWv+VsOpqA//L00ixQXbAvYfoUAnMObNrurv1QtgAvqJwI0KPXngX7rVZbUWK5rAW4eO4TaneFa1kooY5H5/kYT0ac5+N+wItp73BiGtYx/DQ2ZqxjSDzSYJ75RxFamIw2Hxq5JrL8RH7X9bv87W4OFbtldq2GCajPup3QTpHHAb+r1V7WG3ZLcbtG5Rcu7VaWCJQ/5Y1Kd5Ig92GMsxtYDIHJ1NbH0QA2uDRo+SK4axFBDBvGMlNDI6lJ4xnGGuDrevbgFGWyjrcpDFDw2nSZT9vN4NjlhMt9j75XjwRuo0i2OuHy7zKSr/jyjFnt6+PbMPtsnjkWPDFhTgS9p2drKMtjLn3HP52GgoCxXJHtLGNBralY9T/3MjHb5YPy5d6FMIg+PfbjXYYhOcFSiDVdQIpmCCfP81StLGBI7XkgRQDA28d6M2fvNAPh7UoAL2ImA9HJ8oc0VsT24bF9kkTtjY7oXQI8xZiymQhqjSB8JE+9iu4iUpQiHa2pmGc+0dkLP38yHRaFj+MsbW5wkZEvWBTcuQzfSmODxXR+fevAHtHS9+K0DXv22nIJYnADUFmk8UZGqyeuCIf1ixDAv6nx6se7TDBZCvCjmSqgWbarZ84XtEnLtLqjrAwu7D7Yewc0AN3HlAhB7lHIAkZyCdZ7y0L2xWL7QmDO1R7lzJK28q6CepM9+rK5xJtQlZA3fJd1U8/mJ+VRuEcTG908eesanMycsEjV1OcDdtLJLs/8x2rv82qD2mBHNTODY36goF/EWslfyD47UZ8OAATD1wDN5Bn4hMAopM8Q8AFsjNqkvN5EK9GCr1RDWU0/LhQUfRWWC0pXRof6N32hHVSQ+hJz1eF6dOKou3I5NYrq4Yp6iIJIatqn6ENuutCyHprXWFTzrtpLQQsUels8pb6i+wifVWXd317rNPCVj0lES76IEt7j+Ha8BYHk0MEKkt3I134pCt/KgMAnKKcPojcncPNhl1LNxIP41brMusjXNRazFnd19WZfo/nMSZ7QHwm3XDryUehCiN15fJPMXh2WQ8RgayDM3h0gwDZSxQExC+DGQsMWFKzz3nEUyClrDYPo7s40EPRqCuHQnho/h/tqCGa5jKbd7+mJnC3n7tscTCT3X3JcirCuzIQUaZJMT+j5XlLkDXdxfvngGepqr/0ucTbuiRSwg6jyat09pbwIHTPXjrj2Ma7M/jc7aPA0YxHYIxJrJD3jIRbSBR0Ph+SMGtRCCt X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Gw+2EcoV6LtDmc5SG1F4oSZIAom5WW0RxLpApmmm/2XSeLIBK9bp3IAi8qDu3Bdy2D2q7ZRfPLDub4lePU0oVm2a+lTTaCa2vdZLLnuC0/GYqgMEbc59o8u2kT3BBsl3Ms89o3p+3DAXI7ObHkdagAXRxUALzz8xidnOLzLF70+WN7Aty5aiqdlAUYMviAWMZTckmz1ppGaJzxr+jBs6ZEtsBx45TtFq3iTWa04Mfl0f30HP4hziAnXGXJ5SCgh0lFLcfgp/kFYcXyrGdnHCCjspXdAUbrz3deOJ4SQRsCwvoFZsQYojG1zXkyj4eAwvFD2onscl207/mq1czjmmIQql+kfav8a15aRdr5eVo5qmCuJwo801W7jF7ZIUiiq7B+C63YTh2dSTBcZOAxCZjuO6Y45d5NhX5qP08lE06RfD//mQAxA1gbzfuM9mk5rOBdNg7rI2pwMecuMkHsiPHLlolxG/YOZ5gTHwqqHXX0I9X7PCipPAppDLW7G3NdJhIFPHvgyw0kv0/tbQrpS6qsIJ2JjDNgQoNgYv5BuuCoXP/2ENPFnJ6juDdefsV+AK9iu8+e//EeuITtU4UWfzsqzmsWwkPuc7zLtQ9A2WEk0VnDeEJ3GsGLMW2LUD6wzuod6n62BiImVCOmnZXZ0rwDiqnAjSgxMEEgIJ7M1hYNd69mzwUxMUCL9Qzd1AT7stG5njFOYJ+lUxpLormk14FDNYBNTkUX2fp2hgmwIY1212RR/bAAOCEJDGyit7nBM3Svt7sUjfoX+59bABSrIgfA== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7d82228e-696b-4bd0-c438-08db825a0801 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:59.8425 (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: cjGjrQpXOvCO2uyJxnhWUzTDvLxe+qWaqepTi2VlAnrcdAC+BE1QtCGC2dN5TnTXN6EO6nGX5/R3Fcm1PSvI8w== 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 bulkscore=0 mlxlogscore=863 adultscore=0 mlxscore=0 suspectscore=0 malwarescore=0 phishscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2307110200 X-Proofpoint-GUID: dIFGKS39XppVE5rGGF0p-0CMT6RM3Lof X-Proofpoint-ORIG-GUID: dIFGKS39XppVE5rGGF0p-0CMT6RM3Lof 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, 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 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 Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org Sender: "Gcc-patches" This patch adds tests for the btf_decl_tag attribute, in both DWARF and BTF. gcc/testsuite/ * gcc.dg/debug/btf/btf-decltag-func.c: New test. * gcc.dg/debug/btf/btf-decltag-sou.c: New test. * gcc.dg/debug/btf/btf-decltag-var.c: New test. * gcc.dg/debug/dwarf2/annotation-decl-1.c: New test. * gcc.dg/debug/dwarf2/annotation-decl-2.c: New test. * gcc.dg/debug/dwarf2/annotation-decl-3.c: New test. --- .../gcc.dg/debug/btf/btf-decltag-func.c | 21 ++++++++++++ .../gcc.dg/debug/btf/btf-decltag-sou.c | 33 +++++++++++++++++++ .../gcc.dg/debug/btf/btf-decltag-var.c | 19 +++++++++++ .../gcc.dg/debug/dwarf2/annotation-decl-1.c | 9 +++++ .../gcc.dg/debug/dwarf2/annotation-decl-2.c | 18 ++++++++++ .../gcc.dg/debug/dwarf2/annotation-decl-3.c | 17 ++++++++++ 6 files changed, 117 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-decltag-func.c create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-decltag-sou.c create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-decltag-var.c create mode 100644 gcc/testsuite/gcc.dg/debug/dwarf2/annotation-decl-1.c create mode 100644 gcc/testsuite/gcc.dg/debug/dwarf2/annotation-decl-2.c create mode 100644 gcc/testsuite/gcc.dg/debug/dwarf2/annotation-decl-3.c diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-decltag-func.c b/gcc/testsuite/gcc.dg/debug/btf/btf-decltag-func.c new file mode 100644 index 00000000000..12a5eff9ac7 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-decltag-func.c @@ -0,0 +1,21 @@ +/* { dg-do compile } */ +/* { dg-options "-O0 -gbtf -dA" } */ + +#define __tag1 __attribute__((btf_decl_tag("decl-tag-1"))) +#define __tag2 __attribute__((btf_decl_tag("decl-tag-2"))) +#define __tag3 __attribute__((btf_decl_tag("decl-tag-3"))) + +extern int bar (int __tag1, int __tag2) __tag3; + +int __tag1 __tag2 foo (int arg1, int *arg2 __tag2) + { + return bar (arg1 + 1, *arg2 + 2); + } + +/* { dg-final { scan-assembler-times "\[\t \]0x11000000\[\t \]+\[^\n\]*btt_info" 4 } } */ +/* { dg-final { scan-assembler-times "\[\t \]0xffffffff\[\t \]+\[^\n\]*decltag_compidx" 3 } } */ +/* { dg-final { scan-assembler-times "\[\t \]0x1\[\t \]+\[^\n\]*decltag_compidx" 1 } } */ + +/* { dg-final { scan-assembler-times " BTF_KIND_DECL_TAG 'decl-tag-1'\[\\r\\n\]+\[^\\r\\n\]*\[\\r\\n\]+\[^\\r\\n\]*\\(BTF_KIND_FUNC" 1 } } */ +/* { dg-final { scan-assembler-times " BTF_KIND_DECL_TAG 'decl-tag-2'\[\\r\\n\]+\[^\\r\\n\]*\[\\r\\n\]+\[^\\r\\n\]*\\(BTF_KIND_FUNC" 2 } } */ +/* { dg-final { scan-assembler-times " BTF_KIND_DECL_TAG 'decl-tag-3'\[\\r\\n\]+\[^\\r\\n\]*\[\\r\\n\]+\[^\\r\\n\]*\\(BTF_KIND_FUNC" 1 } } */ diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-decltag-sou.c b/gcc/testsuite/gcc.dg/debug/btf/btf-decltag-sou.c new file mode 100644 index 00000000000..13c9f075b1e --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-decltag-sou.c @@ -0,0 +1,33 @@ + +/* { dg-do compile ) */ +/* { dg-options "-O0 -gbtf -dA" } */ + +/* { dg-final { scan-assembler-times "\[\t \]0x11000000\[\t \]+\[^\n\]*btt_info" 13 } } */ +/* { dg-final { scan-assembler-times "\[\t \]0\[\t \]+\[^\n\]*decltag_compidx" 2 } } */ +/* { dg-final { scan-assembler-times "\[\t \]0x1\[\t \]+\[^\n\]*decltag_compidx" 1 } } */ +/* { dg-final { scan-assembler-times "\[\t \]0x2\[\t \]+\[^\n\]*decltag_compidx" 3 } } */ +/* { dg-final { scan-assembler-times "\[\t \]0x3\[\t \]+\[^\n\]*decltag_compidx" 3 } } */ +/* { dg-final { scan-assembler-times "\[\t \]0x4\[\t \]+\[^\n\]*decltag_compidx" 1 } } */ +/* { dg-final { scan-assembler-times "\[\t \]0xffffffff\[\t \]+\[^\n\]*decltag_compidx" 3 } } */ + +#define __tag1 __attribute__((btf_decl_tag("decl-tag-1"))) +#define __tag2 __attribute__((btf_decl_tag("decl-tag-2"))) +#define __tag3 __attribute__((btf_decl_tag("decl-tag-3"))) + +struct t { + int a; + long b __tag3; + char c __tag2 __tag3; +}; + +struct t my_t __tag1 __tag2; + +union u { + char one __tag1 __tag2; + short two; + int three __tag1; + long four __tag1 __tag2 __tag3; + long long five __tag2; +}; + +union u my_u __tag3; diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-decltag-var.c b/gcc/testsuite/gcc.dg/debug/btf/btf-decltag-var.c new file mode 100644 index 00000000000..563e8838f1a --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-decltag-var.c @@ -0,0 +1,19 @@ +/* { dg-do compile } */ +/* { dg-options "-O0 -gbtf -dA" } */ + +unsigned long u __attribute__((btf_decl_tag ("__u"))); + +const int * c __attribute__((btf_decl_tag ("__c"), btf_decl_tag ("devicemem"))); + +struct st +{ + int a; + char c; +}; + +struct st my_st __attribute__((btf_decl_tag ("__my_st"))); + +/* { dg-final { scan-assembler-times " BTF_KIND_DECL_TAG '__u'\[\\r\\n\]+\[^\\r\\n\]*\[\\r\\n\]+\[^\\r\\n\]*\\(BTF_KIND_VAR 'u'" 1 } } */ +/* { dg-final { scan-assembler-times " BTF_KIND_DECL_TAG '__c'\[\\r\\n\]+\[^\\r\\n\]*\[\\r\\n\]+\[^\\r\\n\]*\\(BTF_KIND_VAR 'c'" 1 } } */ +/* { dg-final { scan-assembler-times " BTF_KIND_DECL_TAG 'devicemem'\[\\r\\n\]+\[^\\r\\n\]*\[\\r\\n\]+\[^\\r\\n\]*\\(BTF_KIND_VAR 'c'" 1 } } */ +/* { dg-final { scan-assembler-times " BTF_KIND_DECL_TAG '__my_st'\[\\r\\n\]+\[^\\r\\n\]*\[\\r\\n\]+\[^\\r\\n\]*\\(BTF_KIND_VAR 'my_st'" 1 } } */ diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/annotation-decl-1.c b/gcc/testsuite/gcc.dg/debug/dwarf2/annotation-decl-1.c new file mode 100644 index 00000000000..d5af2188098 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/annotation-decl-1.c @@ -0,0 +1,9 @@ +/* Test simple generation of decl tag annotations. */ +/* { dg-do compile } */ +/* { dg-options "-O0 -gdwarf -dA" } */ + +int *p __attribute__((btf_decl_tag ("p_decl"))); + +/* { dg-final { scan-assembler-times "DIE \\(\[^\n\]*\\) DW_TAG_GNU_annotation" 1 } } */ +/* { dg-final { scan-assembler-times " DW_AT_name: \"btf_decl_tag\"" 1 } } */ +/* { dg-final { scan-assembler-times " DW_AT_const_value: \"p_decl\"" 1 } } */ diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/annotation-decl-2.c b/gcc/testsuite/gcc.dg/debug/dwarf2/annotation-decl-2.c new file mode 100644 index 00000000000..10f2dbc5def --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/annotation-decl-2.c @@ -0,0 +1,18 @@ +/* Test generation of decl tag annotation DIEs for structs. */ +/* { dg-do compile } */ +/* { dg-options "-O0 -gdwarf -dA" } */ + +struct st { + int a __attribute__((btf_decl_tag("__st_a"))); + char b; + int *c __attribute__((btf_decl_tag("__st_c_1"), btf_decl_tag("__st_c_2"))); +}; + +struct st my_st __attribute__((btf_decl_tag ("__my_st"))); + +/* { dg-final { scan-assembler-times "DIE \\(\[^\n\]*\\) DW_TAG_GNU_annotation" 4 } } */ +/* { dg-final { scan-assembler-times " DW_AT_name: \"btf_decl_tag\"" 4 } } */ +/* { dg-final { scan-assembler-times " DW_AT_const_value: \"__st_a\"" 1 } } */ +/* { dg-final { scan-assembler-times " DW_AT_const_value: \"__st_c_1\"" 1 } } */ +/* { dg-final { scan-assembler-times " DW_AT_const_value: \"__st_c_2\"" 1 } } */ +/* { dg-final { scan-assembler-times " DW_AT_const_value: \"__my_st\"" 1 } } */ diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/annotation-decl-3.c b/gcc/testsuite/gcc.dg/debug/dwarf2/annotation-decl-3.c new file mode 100644 index 00000000000..e006548fa25 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/annotation-decl-3.c @@ -0,0 +1,17 @@ +/* Test generation of decl tag annotation DIEs for functions and func args. */ +/* { dg-do compile } */ +/* { dg-options "-O0 -gdwarf -dA" } */ + +extern int bar (int, int) __attribute__((btf_decl_tag ("__bar_func"))); + +int __attribute__((btf_decl_tag ("__foo_func"))) +foo (int arg1, int *arg2 __attribute__((btf_decl_tag ("__foo_arg2")))) +{ + return bar (arg1 + 1, *arg2 + 2); +} + +/* { dg-final { scan-assembler-times "DIE \\(\[^\n\]*\\) DW_TAG_GNU_annotation" 3 } } */ +/* { dg-final { scan-assembler-times " DW_AT_name: \"btf_decl_tag\"" 3 } } */ +/* { dg-final { scan-assembler-times " DW_AT_const_value: \"__foo_func\"" 1 } } */ +/* { dg-final { scan-assembler-times " DW_AT_const_value: \"__foo_arg2\"" 1 } } */ +/* { dg-final { scan-assembler-times " DW_AT_const_value: \"__bar_func\"" 1 } } */ From patchwork Tue Jul 11 21:57:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Faust X-Patchwork-Id: 1806524 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=) Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.a=rsa-sha256 header.s=default header.b=yQQS1JdW; dkim-atps=neutral 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 4R0vtq14Bjz20Ph for ; Wed, 12 Jul 2023 08:00:19 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 07E19384DE64 for ; Tue, 11 Jul 2023 22:00:17 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 07E19384DE64 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1689112817; bh=uc57RZlKzZ2eAlk12X1J9r2HQg7/gkIH4N+Arc61wJQ=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=yQQS1JdWnlmP3lYPB0aO6I+7ROkfdzamzhBvq8Fg58FtjximCtLTVJJjeoOKn0rRn RkUF8ST4zqKAA/37KSAo4MpV2ultR8OGQDbu02h4q0sufkfGuGfINn5GA6T+DMQWcO lh3erGM1SiLQ79JrD4LJ5uvgsu7qO+dbjmhGwsrY= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by sourceware.org (Postfix) with ESMTPS id 773FE3856DE8 for ; Tue, 11 Jul 2023 21:59:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 773FE3856DE8 Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 36BICxLd019628; Tue, 11 Jul 2023 21:59:09 GMT Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3rrgn7ut7r-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 11 Jul 2023 21:59:08 +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 36BK1xpq026912; Tue, 11 Jul 2023 21:59:07 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam02lp2042.outbound.protection.outlook.com [104.47.56.42]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3rpx85hjmv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 11 Jul 2023 21:59:07 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Th3570PXD8fJoKKsKA2OY6+rOCPmMMPeyxpmbpNHG9QONgiGZcnhrn2OACnuMlMA9VpcA2hCFXuq7qiV6j6kC8G4IR91pK7yXfu2QFSMVeRjiZ59Opcqxg4FBvo4z+Ow75baJjVDKf3hMVZXVD/gzmYDsamuZBczYlZSGATm7Uuo2CaunMgn7rQYPlah3XGdPaqOLJ1vDAFZ+xuPif/yCnaZoFP/iwvL6CoAuw2IcrNs1+9IuAHNMa/UCLxLziQUjB5xlOC4MEJZCTP0xPF5BpNu69IB4R4ahNZr2t6Q4gw4mAaH8rRbE0CVQVsCBMVbJBcHXHovmq2sEX3BcFR4fw== 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=uc57RZlKzZ2eAlk12X1J9r2HQg7/gkIH4N+Arc61wJQ=; b=Z5sZq51TawYe482aCnBRFH0LauJqneCs6NRUetfgd31G4blye0L4vpUEzZ66gkZgXlLbylm6k3o6Znry/xH4cpn/3rV8bptooVSZ5mTlr5RB7ojgvqkci5bOKOVynZdxs0/7B2V+9Pg5O/HWpPJIILFjdKKYqeVvhJryeyruRKAhPUML2HCXnttzWqjnKCkvZc8HM/Z8UxQEv9+BDJseq7wvZJcORYC0Hiqbr701s+L6/IXgxE2lio/KqYfbkhnjid2+/JYzht3SnL6zheOaR1zwcosYM71h1kpIrHDUqapWlJftf2LLLyNM7Z+83KA6H8XJp48WZvWAiFht7ji79A== 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 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:59:05 +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:59:05 +0000 To: gcc-patches@gcc.gnu.org Cc: jose.marchesi@oracle.com, yhs@meta.com Subject: [PATCH 9/9] doc: document btf_decl_tag attribute Date: Tue, 11 Jul 2023 14:57:16 -0700 Message-Id: <20230711215716.12980-10-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> X-ClientProxiedBy: SN4PR0501CA0110.namprd05.prod.outlook.com (2603:10b6:803:42::27) 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: 397b1e1a-9304-4c35-9ea2-08db825a0b78 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: DQaPYEI5PvZx+eSOEn7JKqMSXOkaA88ZjMAVNsaT0FRkvOZua+M59iyT3oiUFPyMEsTTFa+HVHQW5k5MiQtXQA9XbruwDhyGUa7ZY0X63aAwgKTDDgtayqgk1UsQLhMPBBDMMAozFXiPFSOvQM10hRnTEbDiNCrgSokY4TQyBUKc4/53Lst8KSgWufVRuK4DQZxnY3TeI/L8FiA7RM/XRavn40yG2vZIAFhEA6+DfweHwARwjeudJoWCDwkX4Tu+0c4FBqeWzwvRceXizVY6pey4jAaRuSWrRFHbCeAFXFy+G80h3sCT0itbma9LM0hcpN8cXKaFQnUfZjNVY6G7TnChgKXtY5x5AUgHb4NKTTdJhssaIKySBytyRlDwImIAUYuChi8dYIR9V4x/totXebgMQ+6ui7agYAahiMivWVOmNmDxsX/632FyDU33GrcbBiFlr9VZib5Jx/13VVJgT4a8CryDiDJYmJDS+z93vuXw2d3dk9UZBqzxN+HJ9FLIsEtkwh45WQcsm08/zDBh9ybnf6IuZix+YuGIncc6ogQJL+4qX7WPQ78j6jvKhLj3 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); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: hc45cv3ruPEK+uQ5JMJVmqUdvTmV71hhdi4uDhclXx9oFIV6lE+W1jZ7PHRCNHPLa7hDMqjYrRiLFHqe+3gTc8PLTrjU2KYHcpVrBDu8hD9fMHxlzk7lUDPJtAIi+jGa4FhPta+W+qoYBYQAshbWkwX9x1bH7nBzxBTxHYS/zXOhgUIcjh3yLqrKISjZbYahIZc3Efm9k2+vGFxT10PUd4fAbdP4Lqb0gKC6eYDPCLovDLeKZ2XYukzBfnAuY9553npouaQlGbC4U+sb2nwZqLzEidcOEkjDI5bpMqDtlXcpZd+WaNIFYu8NMR+QHek45IwzKaZafxtDknK2qZLp98dICTxEPgrnZXxWbGemP3DDMEuweYBDxFvOlcva3gJZMvFn9+7+bZ0g0UYrXg77/IjX8xaH9vpU2SmeK445FC6qG+Iv/+OAXOWcSQAogtdKA3+vAX7J0hUXf7BFvQsoXJxt1ZhyW0+pipcnOlAtXG2Cxdmwk0B4v8edtSyIQZM9iE/pimWTjNK3VTNXRDMHKNyzpNyqZi1Q5KEVXGS5DX+IudVIqeaeBIX+mHvANjyet5vKk+WPE+yIct4upIud2UHW+19tV5KMw7Q3gDBknd21b12KwPjLDKzT5+IacV0/Sg94MVNFdWLBtFbSjoZLP5sfHLIqw1AhqdNETT63alQ8zSkNKEsurG4EtXp1R/O/2ec0/yzih4fdfnCo0cFyTOZ5DrlwFn3liD3OXUZhJDdhJPSay4TYq8vzbTeMNS7OhHfBW9fuzXU93azho7X3gt2wX63RNP2rPrRlFkrfoH3aNqhIMBIuqW/07Yi8uA3pnDFkx9vKIQs0MxSJfH9iMQAdE4Q7nN1A9GujwfHCXY9FjSsV4dQBRKGln6MfHx73zm7svVYY6mGMT3O6OoGzpZeKoEo+TX4fe3WZreZIyKiAjNnqskEmGS4d5z2ud4JP3jsRko5lDxwF2qZSpdYJFMboZyKtCqQrxGA0jKAkd8c/TYzzP8nDa0/k78kaFTOK+W3z9CElBHnBFUnVn+uLfqzu4fFns9S+DqNYx/GL68sW3h7OMAPRQAwyujsrX+42g2mujN1G16bsNR53AuFo4uQvZKYE5QZWuw6tciTfD1UwLWy5BUqAcHoMWXjOmxQlP270/Xbhis1tLQdJOUFapXL7vJO4ZOa+GWQ32GozwhRFO4gBVeiHyS3GRq9ZCPTV52g2A5v+5pBtZKnLFsBSrCRt5pJap8aq907gpJHyR/uUP/KooCM/sigVPmE/pLJm5NgZ558yufy6RLtg3F+40NmB3hbpagEGBDtJixZVZr2Lb5HZcFv19cnyVnMYN2O4FqHOg65MQxOA1mYhiic5SJ4X/J+LiQxYwLpVm9iaNEtHjJ60RF7H2iQEM57cLvbMKnGC5zvzL5z2D0PusQYGq+UVKHRMxcJ3E3T3fSVc3KyOb8dvxzLtL3xEyv5Cz1hji1LN1+trzH+QJbiEaq0t2boGW0BZNLCPq8mma1mQ0bgDWJT8XVZA4TjLBWabQdtm9KvY8hVoUbtEJ+9wqMXCuRapX2Uibf9uCYp2L6lgZcSdCsVpVzEuJawwNC776jgV X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: DmlmeY2RgupNGyDhwBFUbrv+pjKlJfVO3uhGVddjHzaVMootP5aX9Mexz5gzXEd45Wty5M8h0DLL8ZFbZSiglFAwntAOq0uhS4pK22SjpSgmaCE4TZBJya07FGYsI7XvraK4jg15ZXWdsVM1vevss51FrlmgKSIr9jogfIaadOBh9wj0nSoDDfuGIA9J9W4Q3CHHouowZRvlh0IR068W37ShfLLBSCKRqIQeabq9yCIkRrZ+D8tZ327J91XQoV0p1e50fG+EpM2b0sICxtORjgo7y8SXmScxLJsPWrBYvuG3fFZpsqeI2InxQCWgYu9TrnUZoLlEN2KFLYgt2rmQQMGd44YjQvNeAj3Eepd7zAV0b7xSI6S7TXMeEmkOwfCl2l8MKdl0tgAaBx892woaHHV9kC1pMI5dyrSGjsJzqjv4A2dTssUsruMVrCQWvHYesV1z/zgOhPuULxHKNwN6WqaVGPpxuDuqaHMQ49XkzFkjyfVLdEPizC0ceT2DtQ1UEgc65alNGy5Uy1a/PdJUyqv0pvUmRH5HJJ3aZPv7BwGQ8hv4HKMeO0d6vSNnt881TyehrMbXHRlUnXs4xH52Ny/BPemW6uSLKLoY3csF3lAKD3oe95RtNRHvRhSr3wsdEsLyXDsqsghUT0GKVvyJ06CRwgWqj2c6XIqNZhv7BpQELjx/rjjnswQZcJUxu4uElAz/Rkz9P0bD1nHE3CKEFSGYWxCOYiyaZHaJkLOr+3IDKv84waPVaAg8/tK2fOapKJuY+WslblGCnEbZtRtQmQ== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 397b1e1a-9304-4c35-9ea2-08db825a0b78 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:59:05.6627 (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: 7R/lRlfsQlawu/WfniNnOwm03KvDuCu9dzGGcJnQ6ewydHxNxP+Gol9AXm3UFa/UMO3S5zi2/JuEmQfP6Edn6g== 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=971 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2307110200 X-Proofpoint-ORIG-GUID: dQTaSWjlfgnQckxSHVBrE0YlyBIMxGw_ X-Proofpoint-GUID: dQTaSWjlfgnQckxSHVBrE0YlyBIMxGw_ X-Spam-Status: No, score=-13.4 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_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 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 Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org Sender: "Gcc-patches" Add documentation for the btf_decl_tag attribute. gcc/ * doc/extend.texi (Common Function Attributes): Document btf_decl_tag. (Common Variable Attributes): Likewise. --- gcc/doc/extend.texi | 47 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index d88fd75e06e..57923621c46 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -2856,6 +2856,29 @@ declares that @code{my_alloc1} returns 16-byte aligned pointers and that @code{my_alloc2} returns a pointer whose value modulo 32 is equal to 8. +@cindex @code{btf_decl_tag} function attribute +@item btf_type_tag (@var{argument}) +The @code{btf_decl_tag} attribute may be used to associate (to ``tag'') +function declarations with arbitrary strings. Debugging information will +be emitted to associate the @var{argument} string with the attributed function. +In DWARF, a @code{DW_TAG_GNU_annotation} DIE will be emitted in the DWARF +information as a child of the DIE for the function and holding the +@var{argument} string. In BTF, a @code{BTF_KIND_DECL_TAG} record is emitted +in the .BTF ELF section. + +For example + +@smallexample +extern int bar (char, int) __attribute__((btf_decl_tag("for_user"))) +@end smallexample + +associates the string ``for_user'' to the function ``bar''. This +string will be recorded in the BTF and/or DWARF information associated +with the function. + +The @code{btf_decl_tag} attribute can also be used on variables +(@pxref{Common Variable Attributes}) and field declarations. + @cindex @code{cold} function attribute @item cold The @code{cold} attribute on functions is used to inform the compiler that @@ -7570,6 +7593,30 @@ This warning can be disabled by @option{-Wno-if-not-aligned}. The @code{warn_if_not_aligned} attribute can also be used for types (@pxref{Common Type Attributes}.) +@cindex @code{btf_decl_tag} variable attribute +@item btf_decl_tag (@var{argument}) +The @code{btf_decl_tag} attribute may be used to associate (to ``tag'') +variable declarations with arbitrary strings. Debugging information will +be emitted to associate the @var{argument} string with the attributed variable. +In DWARF, a @code{DW_TAG_GNU_annotation} DIE will be emitted in the DWARF +information as a child of the DIE for the variable and holding the +@var{argument} string. In BTF, a @code{BTF_KIND_DECL_TAG} record is emitted +in the .BTF ELF section. + +For example + +@smallexample +int * foo __attribute__((btf_decl_tag("user"))); +@end smallexample + +@noindent +associates the string ``user'' to the variable ``foo''. This string +will be recorded in the BTF and/or DWARF information associated with +the variable. + +The @code{btf_decl_tag} attribute can also be used on functions +(@pxref{Common Function Attributes}) and field declarations. + @cindex @code{strict_flex_array} variable attribute @item strict_flex_array (@var{level}) The @code{strict_flex_array} attribute should be attached to the trailing