From patchwork Fri Apr 1 19:42:09 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Faust X-Patchwork-Id: 52586 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 709E03858C52 for ; Fri, 1 Apr 2022 19:44:32 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 709E03858C52 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1648842272; bh=tFfjgAZ1MAYBYhH4K6hmYiIe0goN7ebL5E96qZ/H0cc=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=nlKPAayzC/NbbFsbIo908VrreC7Zh9MJWn2vnLpfv2n2OScXYDlCIz1C90X9anCL+ /FdqvRFX8ZuoDe5X005KQz8oNBa4Ttn4nuOcApHmXWRvdaii+plISAaHDNQtq0+5Nu K9gvWofJgEbQEeU3hpQshxqbgFPKT1i4XhNOyoqA= 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 825A93858C52 for ; Fri, 1 Apr 2022 19:43:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 825A93858C52 Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 231G0SuO014782; Fri, 1 Apr 2022 19:42:58 GMT Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com with ESMTP id 3f1s8cygs9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 01 Apr 2022 19:42:58 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 231JfOxW037397; Fri, 1 Apr 2022 19:42:57 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2105.outbound.protection.outlook.com [104.47.55.105]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3f1s96afng-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 01 Apr 2022 19:42:57 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QZUyR4I0gniooadAnfjK7J1X1k58/w8TBt3sEGaRmUt4pDA7YVEFYpPpoBIAPbi9LqkCtoWN9BB3oQlt0d036Gm1SL6484a7bymjU+YW8W93CpKMM4hZsOEOX7sQYFIwp9u6JgWyHFN3TMkOdXVufsQpeHB8FC9OEXfQMauV+uDnX8soXoB7uAKdLplW+zs0WK0/SpGpHmAZDLqjGpUrFjsVRjyKyxWLjbBNiyrFiH1I5W7kW1jTf1BqGO7r6UJkW9rKLfqeHKE/ov6gUfrNZIjyZtF1nk61JL3JFA1fryVjPvBShs5eWIIGC3PnpZpAChdwl/U/rw3pLukAzj6teA== 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=tFfjgAZ1MAYBYhH4K6hmYiIe0goN7ebL5E96qZ/H0cc=; b=i5OxiK4+mxHMlLABG3h0z72JZEw6nbQoH4vJJgnonwkA4ALiV5LHaKhUygF3jppDEqNZ48si2Y1I3TXWzE2vNXakmb+dfCdP98jxPKKITISxtLjR8WCAtSGqgM279+G3NUQnuYICEbArWgYK/iP6mPPPdI4VQSWaQro/lvFL25a9/8eiWlkEB2322F0+jkBSiH40CuBZfx3s3lkD96X8pSScP5zZ1T4x88B6D5UItb98zDopVeYzxCJG3gyx7S3LKbQ5CsXFLdY3iFWg5XWpO8G4bcT/wInDwCbds98QkzeRAYDnFvVuAnmImnbK8H2eAoxcSeo2z5TcI+hMfHEfwQ== 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 MWHPR1001MB2286.namprd10.prod.outlook.com (2603:10b6:301:2d::35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.19; Fri, 1 Apr 2022 19:42:55 +0000 Received: from MN2PR10MB3213.namprd10.prod.outlook.com ([fe80::705e:a465:c30b:fec6]) by MN2PR10MB3213.namprd10.prod.outlook.com ([fe80::705e:a465:c30b:fec6%6]) with mapi id 15.20.5123.021; Fri, 1 Apr 2022 19:42:55 +0000 To: gcc-patches@gcc.gnu.org Subject: [PATCH 1/8] dwarf: Add dw_get_die_parent function Date: Fri, 1 Apr 2022 12:42:09 -0700 Message-Id: <20220401194216.16469-2-david.faust@oracle.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220401194216.16469-1-david.faust@oracle.com> References: <20220401194216.16469-1-david.faust@oracle.com> X-ClientProxiedBy: DM6PR03CA0052.namprd03.prod.outlook.com (2603:10b6:5:100::29) To MN2PR10MB3213.namprd10.prod.outlook.com (2603:10b6:208:131::33) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8b9b5493-1fb6-4d6a-417e-08da1417d11b X-MS-TrafficTypeDiagnostic: MWHPR1001MB2286:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: fnE9vD1kxaXsBT+qkYcaKD+tac/BGvV1u2ZBcYb0w9E4YriZltM2Av4IKbFnaHPtYkgQ/D6HlOAaxFrKl3cSVslSaNv1eYAfTh8C+lWqenfFkikO9kjuV1EGzLhX8k4DOCoOaBMsdA+lMWf9rLGwcpW5J7IPwBMgpbcUjfUe90xQrnk6F/wOG6M0QsLyuRJE2zQSFb+27IC8fHV7grb9qVaNHAENQ4b8ln7GLm9+g+Hmh/VP/lT2RHFBK5m/0FnF62pYfPTfrIe3gOpbo+VcraaMaCuJYs2/mSU3DbJ5s7qeK3z0CTJ6COp7j12iij+qOs/DXi5Zncu6735+kowTHzXbVZXRvO4wymhGRedw5vVXkD8ZzIT2lWthCdCM98LluHdE+hP+zX+JnJ/+rl5b1iXAETA2x+y22XFd/z0RgnyHqAGuBpRk4loS8GhYb1rA3KBsP55eRvkSu4PRk10hlKeidmJec9QHANjNJTla5WFmNth2ZPOy5WAvB6Uorg/xH5xBY6nSbDtgXhUJv8IKv7VWy7ssCc9jwy/dY0TDOkXduiMh17XwoqdIXQ9Ehm3tjqgr5l6SzM+0As5i4L3oBqNmxgmTsMSPPs147oPGnFrbxmRaV6SGSlq2VsqE3gUyUVfadE4uTLulc9SC4HpUEA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR10MB3213.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(66946007)(6916009)(316002)(36756003)(66556008)(5660300002)(66476007)(508600001)(38100700002)(86362001)(6666004)(8676002)(44832011)(4326008)(8936002)(6486002)(6512007)(107886003)(52116002)(2906002)(6506007)(2616005)(186003)(1076003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ErHj1ITXwSQI+M7/4QaUwj1+UMR027MgTV9si7s5R4Xaz6AxvvYP17RAZ2Q4ppu4nSN483BJTPOQA58HPI0lhUL3BjVoNfTjKrtXERd5t5XrtPUR11Mq5XXd8IB6tNpXC4Xp8H/AlZydjMKrH69+4bqVpihjIAZLHsWAvuIaX4Q7FlFeaRCWT2DmORmemoZiqheKlBLoowpAvASKfNs17QtAVHpQFuWjMANjCBtuc49jmK0KoQzOdFNfLAMXUpbpZ604dXXpFp3zBlhqXe9jIrOj4PFX7HrTD/BB+N+K+lViQ6mTi8IrMAaC9Apul59QyffjjEcm3CDueg+SSJmqYtjyWQ833O4IhAZtHE22BIDAXFOd5A0ar1X5/LGqrhAipcqEkyPOFOfVn96vCuTqbfQ9BUGyY3LB3NuqELhcpbrngPLHCDOZ9tmYotgVJVQxjiLlze4A5Ld2MJg5m+jk3gSIK6rb6duwFTcd/54RYCxugU4HRw0A+3BqVkjaw7hJQ588vrEEtfoM0x3S7iCTWTImlqEviUOCX7unyN/0rXBFxsjpPotFTkZxkyGMNiRGcLp1TVPpYlvpthKAcH3MXDoU33lsxWMYIWM/G0SfUUavzhi7oX0jkiMOW8Bxr0igyHZmh2eHm9AOKUtM0nRONbMXFLPaitYKewI5Ofv+kANdubkt1PE5RGiUz3bE1TTATE+J1yeYfXs5epS1zNvDQksE73qAJdmxEz5iXUdz21v3F7zjZO03rpW/7eckgsC9h5M8iwhambppjAZaMK5/UQPPV7EM0AImo/xxTjJ99tnRDcaRQes5cF4n+g9o3XFZ6AVMtl8Q5tah4EQwNReUCo6k3WoTgqPlOoCyA5Rlj8IpGQnsZ4Or1/gzKn2e8p4AKCA32fp5t85aKXVtnlUwK4Y2OMXuDgNgbFSRa7PXLGUvq3ED5rX25cuR7uDoh27gp0Kvt8rpmtkbziqRpIpP2WzthL0GWuzR2LmIzZjXqiMQu7ZXMyoj3JJQVRaNiZIMRLXSbQNQmcvM3OCm84r5HoIRdkHjMrAq6l6D9AS1FVd1IakX1BBs41HnnxppHYWUsCDFc2hvfkYcv+HjZD9moat0bnV0DRMmZRHEeFkWEO/I2f4S1N6on6DwnJ+16pRm99BnqK+itaPL6FjYA9tBwIyIhl+RTVNhlhdpvLMj2qbNJ9FjMOSXDPCMKS+BdVJlgAHF/8RcaQ7FnGeilz89gnO8Gwd5NfMkZQESd4OsgCkGVJlXChhnWg67zLEO44r/sIRm6mZ6dmN2Lcj2LCpa7vTUt6LP6RJC93Qbv6IkzNnbCngbCRW6rT8b3bAbprNjkSsW/bBuWOlprTV7UI+Vsfyq3gd8PRTUGV2BTYARw6NWBKYxyQYVlysOYZCyJRYoGPsSr3ZQIDdLinACjzUgeyn5nTZouzEhnYHvmIFJUasDaGiOriSLC/A5qdntXAK5X+6bSC5TAYkRJfhvdMau1ZfUxGb3ed4G96STtTbL2lvCOviNanBk+jnXTGP85BrcsaRx+hrAM1jaSTyobdiE6KV9NVDVekgIffjgy+I3Q0sJVRdG3rQE/1XXXSQoNcMDK88o8btpeRSBj1jdURyxAir9bl0qUgwFgjDs+Depb1sr4aAS+Gy0ifegkpyn7zRRslK7Ei/JSdu+vK6VQ4u35gkhFKrNO4NlDzZoeHmCLyysjmdED47Mbx+FQM/nasEEMm60XcAVWqhloloJm0z2ul4EyLYsHuq/POnob3Y5262I3wSCRaxZxs/wXcHU56Gy X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8b9b5493-1fb6-4d6a-417e-08da1417d11b X-MS-Exchange-CrossTenant-AuthSource: MN2PR10MB3213.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2022 19:42:55.3092 (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: ThBFvCAot2MEL91mgeoZciZ1yaEs4wHgNEDZQCSox9IUIfZrNHkLAp1IBV2GkD0W1l9ca8nJdClQZD55edR77A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR1001MB2286 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.425, 18.0.850 definitions=2022-04-01_05:2022-03-30, 2022-04-01 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxlogscore=815 phishscore=0 malwarescore=0 bulkscore=0 suspectscore=0 adultscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2204010093 X-Proofpoint-GUID: LA-6iJTJ5jJPPxhZ0bsNBh-LLpQi9Ut5 X-Proofpoint-ORIG-GUID: LA-6iJTJ5jJPPxhZ0bsNBh-LLpQi9Ut5 X-Spam-Status: No, score=-13.9 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.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: David Faust via Gcc-patches From: David Faust Reply-To: David Faust Cc: yhs@fb.com Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" gcc/ * dwarf2out.cc (dw_get_die_parent): New function. * dwarf2out.h (dw_get_die_parent): Declare it here. --- gcc/dwarf2out.cc | 8 ++++++++ gcc/dwarf2out.h | 1 + 2 files changed, 9 insertions(+) diff --git a/gcc/dwarf2out.cc b/gcc/dwarf2out.cc index 5681b01749a..35322fb5f6e 100644 --- a/gcc/dwarf2out.cc +++ b/gcc/dwarf2out.cc @@ -5235,6 +5235,14 @@ dw_get_die_sib (dw_die_ref die) return die->die_sib; } +/* Return a reference to the parent of a given DIE. */ + +dw_die_ref +dw_get_die_parent (dw_die_ref die) +{ + return die->die_parent; +} + /* Add an address constant attribute value to a DIE. When using dwarf_split_debug_info, address attributes in dies destined for the final executable should be direct references--setting the parameter diff --git a/gcc/dwarf2out.h b/gcc/dwarf2out.h index 656ef94afde..e6962fb4848 100644 --- a/gcc/dwarf2out.h +++ b/gcc/dwarf2out.h @@ -455,6 +455,7 @@ extern dw_die_ref lookup_type_die (tree); extern dw_die_ref dw_get_die_child (dw_die_ref); extern dw_die_ref dw_get_die_sib (dw_die_ref); +extern dw_die_ref dw_get_die_parent (dw_die_ref); extern enum dwarf_tag dw_get_die_tag (dw_die_ref); /* Data about a single source file. */ From patchwork Fri Apr 1 19:42:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Faust X-Patchwork-Id: 52587 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 789863858434 for ; Fri, 1 Apr 2022 19:45:30 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 789863858434 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1648842330; bh=WH1qgAUvsBIe2qwz1jQtuyebzz+oAFJdhyaMcQIQyos=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=keVSadCKeZ0gWV2OCMneRCfU2eLj24O0Scf6mlUBWIZgFqMstCM0S1FQhQmdZYiVh wp6V9jQHBGZvDSjsYbY551NYJIvoxgXyCJ1bir2Z/nuW/LQZzqs3AF85P5akQ0K29U 1GKOWrWCPIzBfNn0Xb/YFnpM4V/ncp7ORwmtKHN8= 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 5AA7C3858C27 for ; Fri, 1 Apr 2022 19:43:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 5AA7C3858C27 Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 231FvH4Z018522; Fri, 1 Apr 2022 19:42:58 GMT Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com with ESMTP id 3f1se0qw75-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 01 Apr 2022 19:42:58 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 231JfOxX037397; Fri, 1 Apr 2022 19:42:57 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2105.outbound.protection.outlook.com [104.47.55.105]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3f1s96afng-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 01 Apr 2022 19:42:57 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=j3Qo5lKTUGiePtOfnacLzH7O0PE0Kb+narwNkOJV6VCcXZ/zEy0utzQtIjfbvb1GSMwgDRJKSo2MSJ1hIGYq4s6K+aSrtPYM5V1PLxawpI57ILVGzZCNHS47b2Yg5uRaziVCeVMfedYLDAgYOUSuCac2lm+tFMTZ7Cdd/hxUw/RxikViikytXqRXLVpegVNFMHgDvicyDZvqp9cAfD8uX1sPjICd0mYcMBYCU24X0foKHqWcXDnu21fLQcdxNJruvTfofWf75z5ik1g+QDQfqRn1/khOvKcwuaJsGh3teFVQO70O22pzIyBE5tQCLh53WkHkbUavIMeKWFbyZ1uPhg== 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=WH1qgAUvsBIe2qwz1jQtuyebzz+oAFJdhyaMcQIQyos=; b=BTPqLZcvSk5sfbKLDZD177+TKfdSfyLZJHzPg7XXzitF4LsFkRqzCoFzu0ZXl2ux45pGcXo9JvEuyjrL16n62NwsTWX/kZEUPmWrggeQI9Yw7ooT2NkCks5ldhv3bZMHKH/bEd1+LUcPIufiCovXIEYf90U+DxNQXLDAxiFKC7+tKsfKHeUaavIPlLS6kYOKbo6u9pxJZpLGpBN1fp6o+qaWcEUwU3EDQrPgum1tmU25qwrRITsr+AYmQjvlrlHUo0xrX+ZG6eoTLz4F7PQqK1yx4goyfWxIv0SqvuR8WAtMFJFrbVsVplu73e9XpCQayGKNSUNDtvsJ4Ico8TnyVg== 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 MWHPR1001MB2286.namprd10.prod.outlook.com (2603:10b6:301:2d::35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.19; Fri, 1 Apr 2022 19:42:56 +0000 Received: from MN2PR10MB3213.namprd10.prod.outlook.com ([fe80::705e:a465:c30b:fec6]) by MN2PR10MB3213.namprd10.prod.outlook.com ([fe80::705e:a465:c30b:fec6%6]) with mapi id 15.20.5123.021; Fri, 1 Apr 2022 19:42:56 +0000 To: gcc-patches@gcc.gnu.org Subject: [PATCH 2/8] include: Add BTF tag defines to dwarf2 and btf Date: Fri, 1 Apr 2022 12:42:10 -0700 Message-Id: <20220401194216.16469-3-david.faust@oracle.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220401194216.16469-1-david.faust@oracle.com> References: <20220401194216.16469-1-david.faust@oracle.com> X-ClientProxiedBy: DM6PR03CA0052.namprd03.prod.outlook.com (2603:10b6:5:100::29) To MN2PR10MB3213.namprd10.prod.outlook.com (2603:10b6:208:131::33) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: bbcb558e-eaec-4392-3776-08da1417d1b6 X-MS-TrafficTypeDiagnostic: MWHPR1001MB2286:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: mP8imIuSp3DAYrPlAK8M9NjQ89GEpX05snTniMvU1kAAFlH5n0We9wVP25Q09EuT47sy7Ep+lJV4FV70roATh4PElCN0gnXxJdInYxMYPMA/r6NcgaN3hcXFZiKMLOx6LkAnCoTkrazlqzbNHECsiy+THgrIsPD6GdPAxeDEQzklwv0BzuTRLLQCyoMJq6h90UFiHJQeudoFUL6xFaM2HdpMVkA0e8ZV+7vlrHGRZowscLpjrqGMJtLiaf+/Dh2YwElr3GZ2eyt/CNH2dcD23vpf1IeSTGDV2U7IY0ACQ5o9vMWPQVElN3NZEDk7gVW/Fy5gVJdmu38VGcTmG4Dh57ArJH1P+s+eR5+v4g0HgMno6uC/gitDqUfoD3j1OAigQWezjIk0APR8DB9tBvZfhkjqx09RcSQkP+Iwa+ciVxNrLCbKH6VTBwe4uMoewCt29YMfmTTK9Df09cGMlC8B1TZjOKus064HlQMvFlWnQXTWklJZbZV1DTIHQL5i0mrCCufEYu9Xeef0TbhB6RxUdWOpOngJuHPhYMeDQ9gOdpvEbxqTmazMXUgTU5Ouxag7E9m9LOpZvpIPFQVxEr4e0577TkkIFpSZyInUIlqzTwvP961AK6eZR2PxjsaOof1bKJVm0F1FLa3OHTX3hgcX7Zd8ONdMwdBVnRniGjmsP1vhiwCSQbJR99g4OUESBflbgSCHevISCvfnsSb0E6yAgvKWqmaluQNjmyYBEPCpAY0= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR10MB3213.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(66946007)(6916009)(316002)(36756003)(66556008)(5660300002)(66476007)(508600001)(38100700002)(86362001)(6666004)(8676002)(44832011)(4326008)(8936002)(966005)(6486002)(6512007)(107886003)(52116002)(2906002)(6506007)(2616005)(83380400001)(186003)(1076003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: WR9exvqlLNi0E+zXgSh1HdMeFvqJ/Hq0ljh4O/8sC4x0MiMWWoHU500TTWm7xsl9O6n29OkKaBveMmj0kNNCcai3uAI/a7p7aI4g1+v/89jhNbPADOplajoxamT6s3CSSqt9DM84PetnN3g0dvu9F+OaIMsK7FSDC0aAP8xDoPG8msJyyy1dVgmHecvFYc75zvVpgBphDfnvqkP9dp/CDa2KrUOnvu273OLnNMsLLbX2mUiBAXGgPvKLnuwH5+FVQJmA/jJzAl+M3tB8xxXAjsQ9iC+vqwp7MxAGSUCHTLqdCMxmLHuVKZ4G6KH4iLseTg8gnouC0+BtL+Ce9tNNWNV+JSpweK1Cfae54JMvu9oLhmldO4Yru/sk3FxP48gevJg8TVa/ZLUw352a4VAfh30Hrv80HMhZvhVaHAjU4cNSit0lrxG09WhYvXMgaS9fPYrG8QtqvTxxxNaI677OYXJgkuoEdMLXjHGO/PCsz95NYZjaKwkPb+eQl8+jSCUiTMNgdVmGeFwMf5j/8q4H8AIHjBpCaE9u8VPUgtICVYbe2Nl/0RujgsmoeUIonR3ptTO7Jn7NihabLhUreqgnGHM82ClkQ0Pmm9sooIpNtrTxa3fIZ8cai1lwi1zSinIjykbmZ5o+WSzlnD7xl3e41w8RguBy12Po7zMTb5jw2rYy/zhXkapT/dogLSJ7NH7QNQd550ovxOZXNOHfMsOMLsTnXvF1++xOoxau58iw8LxBauLy0sCPg4KzRc2qICH2jiEwSGqjMjmq+/PJ9M93bT4TGbalpRWq6nKI9gtMmM3Or81MT3qmjCmwO1P2YS3WX99AZbKONB/aSWkBcykqriL+Z+CaDR1lGTAparlypbat840kQFgp8qrs+euBJ9QpedX9fAPDohuvhkreP33zOJ+sYzPuuBMJ+vXIuSVTG9F8NwD/Uuwtj1j+2uqMusJvZO2PHKv2v8V8TO3kqDrV0Xn3j0xi+PxEpLVB1O08u9gEM3lKbBlYz76KZhWsViWRp5e2yLvy/hUUoT1KpYXY3tfES4H+q/TxR9FED4hpmDcpLwMiRZHChBcDmpeuSbE/8cLyr0c/LvQRBnALCRnsootEuNFxK5Mvr1yiknWwoerBfiaKH/rkYxx3K5FNuyfOeh2cC/mZov9Jzw1QfLhlx+4Eq9arZZBcYVBuwFSLBwiR9FHAMPmCRwPK7qyFbexbDWB6tAHH2eUFjxw5VPRM3yNn8qhz8rsePu8A7Hmh5LxWKCI1xY+3UIKNHjGjTZ8DhdkSHUMswWZP/hgMQ72cnTiPgErcP+vXVid1yauVaRPfUc7a5Y13rrQxy++A/RyF13uxXgexoHwXi8wFYnGYwcSeO7UThD/raDsNmMGXCl0d7Zx8/Cqa987TLuOKrkuqG6dfr+4c9vjczgF6HllPNdExl6KdJVtEfFGSSzTAI8foSmSVkcpmBLgPBIbv6aH/4drMFmxJ0rIa74I7AroRzr+Ac4XXtVNXJ6pYHh1v3+yoIiHtwgK1PqZF/pSc/2u0RjIAaQwqPPGK9Woa/kkKg7D6BHoPvBk9do732CKsqR9JWWSbIuDzdgYwOr12/m94bslTHTaa94Zv4aPkR1NxTJf46PIXnOsEyvcxr5SS6r1YGB432nSLAy1+kNnoPPQQ7sEEJ/31i5rztSfyYmW7zEUQbHYw05ki8lspt/GVcmmSrJC7/Yo8AGv/PgCeFaSnGsqYnvx8NhgcJLQA0cLWkL4iXdt0NXOAdyGgZXc+PQspC554eHg+xRvezdEX/feI X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: bbcb558e-eaec-4392-3776-08da1417d1b6 X-MS-Exchange-CrossTenant-AuthSource: MN2PR10MB3213.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2022 19:42:56.2935 (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: t2drtDtVZBSFTY9jDZ+2yBdZpIkcXdnc/UFppdiDdMNMCBRWga96+Ov4CUPJgH2NLRKDi1O/o108C6+a8FIfQg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR1001MB2286 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.425, 18.0.850 definitions=2022-04-01_05:2022-03-30, 2022-04-01 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxlogscore=825 phishscore=0 malwarescore=0 bulkscore=0 suspectscore=0 adultscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2204010093 X-Proofpoint-ORIG-GUID: ld7sm3nOeL3Ub0L61qlFWpdeB4x98za6 X-Proofpoint-GUID: ld7sm3nOeL3Ub0L61qlFWpdeB4x98za6 X-Spam-Status: No, score=-13.2 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.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: David Faust via Gcc-patches From: David Faust Reply-To: David Faust Cc: yhs@fb.com Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" include/ * btf.h: Add BTF_KIND_DECL_TAG and BTF_KIND_TYPE_TAG defines. Update comments. (struct btf_decl_tag): New. * dwarf2.def: Add new DWARF extension DW_TAG_GNU_annotation. --- include/btf.h | 17 +++++++++++++++-- include/dwarf2.def | 4 ++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/include/btf.h b/include/btf.h index 78b551ced23..37deaef8b48 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,7 +109,9 @@ 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_MAX BTF_KIND_FLOAT +#define BTF_KIND_DECL_TAG 17 /* Decl Tag. */ +#define BTF_KIND_TYPE_TAG 18 /* Type Tag. */ +#define BTF_KIND_MAX BTF_KIND_TYPE_TAG #define NR_BTF_KINDS (BTF_KIND_MAX + 1) /* For some BTF_KINDs, struct btf_type is immediately followed by @@ -190,6 +192,17 @@ struct btf_var_secinfo uint32_t size; /* Size (in bytes) of variable. */ }; +/* 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 4214c80907a..e054890130a 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 Fri Apr 1 19:42:11 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Faust X-Patchwork-Id: 52588 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id ABF3E385741D for ; Fri, 1 Apr 2022 19:46:28 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org ABF3E385741D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1648842388; bh=sWpSxyiNhvQcubrer8Ui6kgN0TSMeEspytpokyYISOg=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=wI+mWvvIiuLtcPj4/fY84sjwEJqrC8x8YirJV2eUXBdZjCv9LkaOwq5f/jDtuGMPl glXQcPK20IUG8Ar6tqGCmCCN4Y1z5dHunVpFyVvkEtP3l7mGl0C0N5PichjYaKcpIx rVGtMWNTCnU8n8uFpfFw7c9bCJlTNOggqLn35Jao= 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 41EBF3858C2C for ; Fri, 1 Apr 2022 19:43:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 41EBF3858C2C Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 231JG1Dx031566; Fri, 1 Apr 2022 19:43:00 GMT Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com with ESMTP id 3f1tes7upd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 01 Apr 2022 19:43:00 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 231JgCWH025565; Fri, 1 Apr 2022 19:42:59 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2108.outbound.protection.outlook.com [104.47.55.108]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3f1tg9j7n7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 01 Apr 2022 19:42:59 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mNmLnJsLcn3fkPfbMkdLSnn3HY8958HaVM5ojjS3U6lqlk7z3k4jdiNAKNzUs+H6OYxUpgiP/1wogOQ+nESO6o0ESZysmEtc52HZVJJBLJoTm/sRdI3SuyGEoXk53F+ALTJdkkB1uXfNaEaIXUbPolR2mnANNb2c5iDrCYR8aLY77hUiDUM+1g4WbhKhsEwcM/22RbN4enX2FQvZktV6z5M39i9OfoRB2rKsJRcWvTIdVaBl960LBaDbjNuSSO0dYPDsOBKPYbyozoKMXNhgg29wpIENtH8ylqdPF56f+Y8FsGiqT0Ylx48kuEZHLs8HfyU2l4N9VS1jTRfTFUAqRw== 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=sWpSxyiNhvQcubrer8Ui6kgN0TSMeEspytpokyYISOg=; b=ZT+sadIepJUjxuVPmHJNbbeXFiWs2r1BwJA3ii7uYaNCHnDcx/e9UMI5medmWYqOnS4/xApJcQWOK0LggXEphpku5tPFL2FPGuqnA1QDDXWcULqERjMdOZzNGNN+Zr/IRuuM/OtyFHd1nUR/uHnfJ0CRyPA19thzIq/SlXVt1kkCvmwpICZ+CgFhkrG2HR51HzhAXRWg0FfN/l5Vd9OAoMYoMhizzv5Y17aB6auElizmDemFRI3I/yg8yhZefnhPJMjl7uKMwpyji4jFcvHkx4UcWFkGOeAA9dQa/3fF4z8XXAPF82AD4h3veNXzzAK0rg0pW4Z3ocpZGBan2KlqXg== 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 MWHPR1001MB2286.namprd10.prod.outlook.com (2603:10b6:301:2d::35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.19; Fri, 1 Apr 2022 19:42:57 +0000 Received: from MN2PR10MB3213.namprd10.prod.outlook.com ([fe80::705e:a465:c30b:fec6]) by MN2PR10MB3213.namprd10.prod.outlook.com ([fe80::705e:a465:c30b:fec6%6]) with mapi id 15.20.5123.021; Fri, 1 Apr 2022 19:42:57 +0000 To: gcc-patches@gcc.gnu.org Subject: [PATCH 3/8] c-family: Add BTF tag attribute handlers Date: Fri, 1 Apr 2022 12:42:11 -0700 Message-Id: <20220401194216.16469-4-david.faust@oracle.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220401194216.16469-1-david.faust@oracle.com> References: <20220401194216.16469-1-david.faust@oracle.com> X-ClientProxiedBy: DM6PR03CA0052.namprd03.prod.outlook.com (2603:10b6:5:100::29) To MN2PR10MB3213.namprd10.prod.outlook.com (2603:10b6:208:131::33) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3de6123c-5f36-4b83-68b4-08da1417d24c X-MS-TrafficTypeDiagnostic: MWHPR1001MB2286:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: xt4v6aZ/w6q9MTMsjgvCVas1s520tKAHxahTis4d9l+JlS0Xy7Yi85A1upRxINAATnm4RQRSZ/7DeaX2F2n6PrbkgiexbV5hn+KlwIrtsoEoZ5h3TeTFILJ9Mt4uiAxSsGX5Yd1Mh/RXjMbc64+0PrXGFYA6T7rWoz7xV2D0DhM9hSL5jz2zW2l1Zrkb/ObllxlbgO77U1yx6AmzIlwcnOIo8SqKW0W44aznlOhlXCXh36Oph2mIDDE0AwxO7ROeazYAk1cbUCVyt9CK6kurMM2KEcqUxThlX53ogF/fSNRsIps2+HGIVGDaIcMnJWIT3c+QTpLMREWxzXYzqebiF/gnZmuWVL3X+wg5FkRfZIVnu0w3rKsxQn7/H9P0KFs40cmJ1OEkPVQgtxdFor2bhvQvLJ9F50gOO9Dc8xjpphg81HxYpR4jhsMtWO5dPI8ytIRpxkAslHKh8orjF19IokpP/WFsOmObshTPn71yG2dZLFwaWJgxmxNCQWOkruYepO4Uv4OCBj49WIOlPjDcHiRmgOFMCVD2i4q7uPFRElZI1A7Lw9PC1V/HuXGsGFw37Qg4UmcxS7X3zEZTsTwKkFdxFt1CZk4qxDs/pyefBLF4czHvP03OUpb+e3sFoRhDoL5jlqWxiEx8/lb8BVTG+g== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR10MB3213.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(66946007)(6916009)(316002)(36756003)(66556008)(5660300002)(66476007)(508600001)(38100700002)(86362001)(6666004)(8676002)(44832011)(4326008)(8936002)(6486002)(6512007)(107886003)(52116002)(2906002)(6506007)(2616005)(83380400001)(186003)(1076003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: r08KxiVMZRx7UnEQ40RtgRnRuAdxn+45QD0tRYVoORUEB0eS8T88cR7iIy9gfF8d6402bV3IZr1lLxAZefxLvwN6AUodBFjXCHjSWmlES5I2LrhrZAZufR+4Cx/sJXm5ohhKg47YD/JI7nVJaCIUIEB9/jY7rnkaUw/1gEMmek15QFuqZWoqFt+zqAWCVNPYTvrt2zMgTlLkRm2f7XnFAmmPkgU31RGC4O/Hz2XFHlWQTLRLpNl9h1RxB2dG+RNaE438kfzwuLmkdVMHxenKsWLJ1EpIgypgW+ifBLsMJnDqigdbP8KYWAhMr4uig0K7Un/WO3cL7ijubpgJWJUxnj7O6keP2ro+dVYhTT+gdAB7Nn/Bp8XaP0v9qWQKh/NsWXXDRiM7EBqpuhxETE8zoYGkanqY4Q3MXG0jIL4LcHDxpo7L39fM0GktH1ve3MSrNCr/1jAytlySD1MqSNO6+ChYUv13ZQaLEIeRWlUWM9gR9xN1hlhSIgWlapsCHC3rQSQMed0YtPEElP1VoMTad0V/Q+NJhfIHZSl2gdi3ePkp+9K/JObNAlEl4LXJ8drFjcz/GhtjKrk7CqD01Sd9CHWLCRU/n0/HtU4DKjxZGzWfKKtf/nNCt0dhwH2zy2QIHMq88GJ0Z9Exjg4pYxpraaHJPuwA0GmthT9F1xz3qhxIExWH2hjaxhTTLXTvgdBlPUTt3At5gPXLWidiCclu/EIkhxueeQdE0QEhs5lR0CNDQNnqS/8xGIWr/+IzucsWql18dDLUc6CcVy/7nT8VVJXYDOZ01Lm2MD2GqXorBUX94znti9eSw2Qlqub/FW1uCNNGhypc/BdeS+FNOV/KMfp/uDwjSwUVv60HXoZxJ3h92a5jwsfsBLZ55YPabMrWpTYxZT6uSUDXPhwMWAyJGPEi+G6nt7sTk56f5ZX/lebv3ZXLOXXE+e9szvqSF3vwPq5EneIX7uQxTS580vlOIHBAhPRSd8n7BkLWdqzZaXO/cnZMGYxhfKO2MVo+55hlZiEyvXQFQKxlmAarORxMu2eo0MNk3YudgzLgL3+lIPW8QuBYywgX3Wk6a4aJq+U6p/hb+kv71RiKUGqBXY5xM1WavWA42d4i8/9J4lcEUs3yVFtUCnDpXYuYbfgxgjEKPpolwFYagIy7YJfhh4H0lO2ReKveQopYRZy3yStWyq1beDRdd+3LSV/cmiE75ZytVkYANL4+NcBMxjLv5c8hNZCrgtg+cStzT1g5RhXNOyuVb9gQ/GeI57WbsHNz6uUjK+anF+PKYR+chyNmVjMwLIKqS3hgEzZU4Tdx5GguytBmFeW29YPvbmHerOFV/aBuyZMV5NXhFy7+laozy40Q0XSUbGLWRdPhzzsJVJ3L6WtYQUdbOxUK+icRqukzyg+8ShtTTFvu8WCZYh8zNOW/v5v61/S2T4YearZBP+Zt/BlJKLCCUGa254qzbyq0K3Wx7rAmkWrgajRqv7GxU8i5b5/RBCGwNMMyYuh3iUMDRbl1egFzZbbwHPcNyk+jmkNwxl0x5bwd59Jx4qN8v4+2a/D1u537Av7LLL5QHevfM12LdBUu55P/LoQAWFrqMxLxWNmnX/y8tXfLCUA0x/PGqIGu0+tONOfKUwSmimsNGYEijqnXoc/UCqdOjtZyTIwM26R1PGQBACmaf7k2pGqjsyOmCzUS21pY/YcFEZybPL+cjzhQF2Fz6zYJYElQuMY2g8+HwnmjZRB23nSMLtjdcwLeCYNmieUF6BlJddZmHCnfeRVmm2Tpz+38x1bJ+UIz X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3de6123c-5f36-4b83-68b4-08da1417d24c X-MS-Exchange-CrossTenant-AuthSource: MN2PR10MB3213.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2022 19:42:57.3091 (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: Qd5//G+002tjUjK9rpptUv82NYuNmBGpU1ydXsKla5f53V+1dN8WzHA0Mt1G2km5ODPE/HsR/L3jsc6B60Famg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR1001MB2286 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.425, 18.0.850 definitions=2022-04-01_05:2022-03-30, 2022-04-01 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 adultscore=0 mlxscore=0 phishscore=0 spamscore=0 suspectscore=0 bulkscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2204010093 X-Proofpoint-GUID: 4gynda9IQh8PzfsAActhph_vzxuU4YCu X-Proofpoint-ORIG-GUID: 4gynda9IQh8PzfsAActhph_vzxuU4YCu 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.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: David Faust via Gcc-patches From: David Faust Reply-To: David Faust Cc: yhs@fb.com Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" This patch adds attribute handlers in GCC for two attributes already supported in LLVM: "btf_decl_tag" and "btf_type_tag". Both attributes accept a single string constant argument, and are used to add arbitrary annotations to debug information generated for the types/decls to which they apply. gcc/c-family/ * c-attribs.cc (c_common_attribute_table): Add new attributes btf_decl_tag and btf_type_tag. (handle_btf_decl_tag_attribute): New. (handle_btf_type_tag_attribute): Likewise. --- gcc/c-family/c-attribs.cc | 45 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/gcc/c-family/c-attribs.cc b/gcc/c-family/c-attribs.cc index 111a33f405a..ec52f6defb4 100644 --- a/gcc/c-family/c-attribs.cc +++ b/gcc/c-family/c-attribs.cc @@ -174,6 +174,9 @@ static tree handle_signed_bool_precision_attribute (tree *, tree, tree, int, bool *); static tree handle_retain_attribute (tree *, tree, tree, int, bool *); +static tree handle_btf_decl_tag_attribute (tree *, tree, tree, int, bool *); +static tree handle_btf_type_tag_attribute (tree *, tree, tree, int, bool *); + /* Helper to define attribute exclusions. */ #define ATTR_EXCL(name, function, type, variable) \ { name, function, type, variable } @@ -555,6 +558,12 @@ const struct attribute_spec c_common_attribute_table[] = handle_dealloc_attribute, NULL }, { "tainted_args", 0, 0, true, false, false, false, handle_tainted_args_attribute, NULL }, + + { "btf_type_tag", 1, 1, false, true, false, false, + handle_btf_type_tag_attribute, NULL }, + { "btf_decl_tag", 1, 1, false, false, false, false, + handle_btf_decl_tag_attribute, NULL }, + { NULL, 0, 0, false, false, false, false, NULL, NULL } }; @@ -5854,6 +5863,42 @@ 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; +} + +/* Handle a "btf_type_tag" attribute; arguments as in + struct attribute_spec.handler. */ + +static tree +handle_btf_type_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 Fri Apr 1 19:42:12 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Faust X-Patchwork-Id: 52589 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 8970F3858434 for ; Fri, 1 Apr 2022 19:47:39 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8970F3858434 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1648842459; bh=r93Q+BegZ4lqTec1t+vB4ThUAa+34OfkgPvqObX0F8o=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=QPJClpKCwyrw7zm0GL4NRmXtuFrNkXn/1R+F89eJoEqvr6jEiBUipS7D7hIF8plB6 w2I3pSOi7AH7GX29vU8F+I0LgS3csEeXTz/JIztsLvx0DV/keZi2tRl9AgcLzj8LIO SWr79XbSaHyIxbkqtgiq9MCz6LTiQXngESrzaiMI= 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 0CF5E3858401 for ; Fri, 1 Apr 2022 19:43:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 0CF5E3858401 Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 231JgqVn018350; Fri, 1 Apr 2022 19:43:00 GMT Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com with ESMTP id 3f1ucu04y4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 01 Apr 2022 19:43:00 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 231JgCWI025565; Fri, 1 Apr 2022 19:42:59 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2108.outbound.protection.outlook.com [104.47.55.108]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3f1tg9j7n7-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 01 Apr 2022 19:42:59 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kLsYOHKNVH1tKV4r4Z7aM8IYvoB5BlbCEOGzBaNt+34L+xtOb48CUYYROxzcE84gX4r6/XGiQSqrp8CJJ0OSvjbejs3d2Y2JRlQZSM2ZxsARnZDtk7FNGdOn8WMf5P+iRfLBh7V7C7CglPfCjk/Ixp85/tPeyAg0ZaLibm91t4PmvfFxKBytjs9IRf7CfB3Bc2WLuO1nJdyQkojWSMmJ9HNj5RDOtNmx51VLk+SdnSHHD5he49URuXoyOlc+wxlZebTavnzhGMZsTzEEIAMhdcmJJBGLn7SWqkhaWcZEU0skja8Qwei4m8zRS8bFFvruP62MC0k+UXRlFsyXdE8M3Q== 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=r93Q+BegZ4lqTec1t+vB4ThUAa+34OfkgPvqObX0F8o=; b=VuGFqzRBGmA0Z+ljGrzcKCO/TZnt3aRcBHzCZ3T9DwvElvqNqUkDcP9QbLu9PCvXEC0pacGYUKKf3pYrIh2HLaMNWgjLL6AlAgTTP8Ex4n0yOPL0vsvY1pwK3LJLjPiHqNJMjeJ6ndjlCgt/0i7I5ydg/rZfcfVwdlAuDYZBZ8x/O7RPl84DyG/kBJxIrd+h17n2/v40ZdynVUVMQ1E/5b/0lfwcTQt5jXXsxazMbnMSrnl9AzAtSBsdo+3Ga2am0MYR3knxNaVHGr7wHSwaip77jdawmHOQLhq4RopY0q61xQwv9Hh+RLvFx2/HToWXZppc7Dl7dQkrFybNoalwBQ== 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 MWHPR1001MB2286.namprd10.prod.outlook.com (2603:10b6:301:2d::35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.19; Fri, 1 Apr 2022 19:42:58 +0000 Received: from MN2PR10MB3213.namprd10.prod.outlook.com ([fe80::705e:a465:c30b:fec6]) by MN2PR10MB3213.namprd10.prod.outlook.com ([fe80::705e:a465:c30b:fec6%6]) with mapi id 15.20.5123.021; Fri, 1 Apr 2022 19:42:58 +0000 To: gcc-patches@gcc.gnu.org Subject: [PATCH 4/8] dwarf: create BTF decl and type tag DIEs Date: Fri, 1 Apr 2022 12:42:12 -0700 Message-Id: <20220401194216.16469-5-david.faust@oracle.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220401194216.16469-1-david.faust@oracle.com> References: <20220401194216.16469-1-david.faust@oracle.com> X-ClientProxiedBy: DM6PR03CA0052.namprd03.prod.outlook.com (2603:10b6:5:100::29) To MN2PR10MB3213.namprd10.prod.outlook.com (2603:10b6:208:131::33) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4ff4cd37-c0f6-471c-37bc-08da1417d2e0 X-MS-TrafficTypeDiagnostic: MWHPR1001MB2286:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: XoHdvnuPZsTomCloKABHG499boDHErBe/hPDRDpJcpm+9lHFtIyu7GwUXuLH5f2EjzFju8Tf96S5iF91kivj561SvyK/bGo/YilQT8+2/RGPN3wpi7i6Vz5rOkPEHESELJmXg2U5UMueW1/1PeHofAzUE0yKTcEfG1f67FUDcJAjWxu1EXpH/rt53+Wy/3fA8K9mAJOVbS6G4hQS5JRT4AEMEiXNpUhp8TqcGsOs1rg+IgULb7IbGJso2U2T9HQS2loWBUwx0WONKFKifwE+hTOEZ/0kGgqm7qRPPoLyy53y/JrITyYe15QYWD9C3GTkasRstStpFJpw2OGlAYyrr72c/DpyLN892yaue/KfJDK9OWqNgKP518qRhZQWJUVlN9bLLniinXgo9EavXsMnAJBikFWOUt4dZLbt/rubVyOFFLIwqFyaGu94faA6MLXEeKJ72I70EGsC1sb/Yw6MIa/yuEiSUAt0zZ2NHw/4KibiyzeRwJzeHEdfeRS3jjyGa3EX8VhTi3a6M7ojOua/XC6E7byau5ayC13EFFtx41lv+VjX2Bc2d4JZiXqO9Jao1n9hTpSI+nF1C7nUZo1aAPjrzFC3beRAKVnlvAkJY6xyeECR+40H0f4qBMeFdw7pMisGzL9fV+nDhAtRG2xR4A== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR10MB3213.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(66946007)(6916009)(316002)(36756003)(66556008)(5660300002)(66476007)(508600001)(38100700002)(86362001)(6666004)(8676002)(44832011)(4326008)(8936002)(6486002)(6512007)(107886003)(52116002)(2906002)(6506007)(2616005)(186003)(1076003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 0uReVIpOrRyLYVzg6geI/vgb1Vbs/vHtO6SdW38itPPjDUarbslrO2UAcCOIxjfOkIbxz/4Y98URWK5r6L3Lxm5FWe+EWOLR2RrkT977mk5skUfMw05iR7o0wV5ij+jsETNAtpBA6y4sjhYuKwiLP8Ez8h1XZJ+b1XS7gzwKECwFzEeOw7GUysSvWTGWCqyQDQoW90v8s+b0fU8KvAQm4WULYadw6vxR1dmuP59rKuOmEliWbJZD2s5SEnEKGVO58Mw1Lao8QdFHtNEJod/HgutrY9GFupo2GoPH1igrcTbhHJijOobSIivy66UPMKgvGxL3HwiafzLcxv9P+CTP/G/tQsGuTcMXmNaGqdZPjtg+Ga3rR1v+D83BHQ4TKNjaAuZiZdP5rdCmn/fRMAx8MBfQQ08bbqhaY3dkkb4trI7RcXNexzidnFxeG+k9W72AmSL8P7dPsgOkDLh04MXIm8u8k342C/HAWqvSq3L65LJEfUB413RRW1aK47mJgN6UjL2oBM+DMUM4UEL+3AXxjyoDVFyB+2kWgYaDLkOgyd3dr52e9h56asLqoK7ji/teekoJMYvCmKBuN000I/8fflxWeXpYpa0yGq+8d5EnDK8glMuW8bqOjbvT/Yo8Jqure9mNNMYLu2ifUxss7zOlhsHy+yA1Z1OkSpy6yeFmJgNClHo+4co5j/mNOr4yX88QmvOWvvBVU2I655vUYNR8o7lb1FfR/saXGAUC1VQsyRSWh0xyN84caCLmaI8lbTfDlTH0R/TMX62+p16QadMOlgLkk88BHhVxsacICzLE02pQtInHYNhFrwl4pe733vQ/+jRUgHbtXv8hSFJyhxqHR38y8cxwE7EInkfkNRdy6kgbKbJ1GoiDiR7uCKiyh1euwpCs0hh7+H26t7hdoF9aef03s6304Xi4B6gnbf68bXlxWZePoi4gKN3+siJfa0NRow20AGjQbFwl2t5k4azlrB3wcwlrDVkSnUUWL7bHp8yFUGQSfGfThCLy61DhXvmPGYRGufd/naIx3Zy7+rJOFg7g1xXxtGVXsu58Ge6HnA6YZH+k8NtC7ZAzHYvpO/r3mEQUSxL4AnWamIjtT5BP/MC+DH+8/V3IQYDsr3iB1jJ4Pw66R+RXEFbxgMF7JKr8jUdv4zdNls3vOHHD5NjIZeY+jeUlHc303A1JLWRboyuGb1bS9B752IlD7AaGvSxP06ENz9RO+vOzD5rhnv2qov0efchzu+0iIfvsabULsyae+1ERz51FRVD5kwZy+izcIvxPuJEm/ecnZ1uY921hAR9+GeXhFy208Ze8wOm2b7IjKLR15lsnjwMr3QOVqRYCESap87i222G2scPDqnWWfkPPzHPcQvnf1xYT2/6oaxTW2e7PyU6aOBK1wDeCHSm12vwd1r2DTrjxlQOmFNSTiNT2FaBD8t3qwFmcc9rcqM1TO3vlFXk9Cdq48RScLw2o8uFStf6A7hyh0B60C16Uw/4V2OrjrDOsMDn1rf9xkcjWsy7qkjtFJNwSFfN2fuWD7B5ddl7X5oY2HXQK+93dfGCrmqG+T4EqTjmXgFqbWjNS4oHPn2nNVP6zPCWe8UpBpDtRS7sAN5T0DJcZ7fFGzJwo6WzjbokdQvcgjjn2+jJoY4478+2eDRFLbj5dwlqHxnrLlNgY55aXbdnvEfYJmKaBip1w1eiMlLE+Wu+zXF81sPeP8USPKDs7l9NR9vPQjHn49H8PtRj07bvQp98NnfTvyz4sPxleJIsIWfcoF3fGg3tNdtbkWbASannQlSgt X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4ff4cd37-c0f6-471c-37bc-08da1417d2e0 X-MS-Exchange-CrossTenant-AuthSource: MN2PR10MB3213.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2022 19:42:58.2621 (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: IpknlVutImhoLuim7C9Fu+1vMpdvqSS8RfnfNajkXU0Cy+tdQe0Eec4WPk6NxpY4WCSC9b94p2CJLL8D4fyzMA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR1001MB2286 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.425, 18.0.850 definitions=2022-04-01_05:2022-03-30, 2022-04-01 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 adultscore=0 mlxscore=0 phishscore=0 spamscore=0 suspectscore=0 bulkscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2204010093 X-Proofpoint-ORIG-GUID: x7a2Q4P-tbxgRKJRTLa9tUnsZTN0KAoi X-Proofpoint-GUID: x7a2Q4P-tbxgRKJRTLa9tUnsZTN0KAoi X-Spam-Status: No, score=-13.5 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.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: David Faust via Gcc-patches From: David Faust Reply-To: David Faust Cc: yhs@fb.com Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" The "btf_decl_tag" and "btf_type_tag" attributes are handled by constructing DW_TAG_LLVM_annotation DIEs. The DIEs are children of the declarations or types which they annotate, and convey the annotation via a string constant. Currently, all generation of these DIEs is gated behind btf_debuginfo_p (). That is, they will not be generated nor output unless BTF debug information is generated. The DIEs will be output in DWARF if both -gbtf and -gdwarf are supplied by the user. gcc/ * dwarf2out.cc (gen_btf_decl_tag_dies): New function. (gen_btf_type_tag_dies): Likewise. (modified_type_die): Call them here, if appropriate. (gen_formal_parameter_die): Likewise. (gen_typedef_die): Likewise. (gen_type_die): Likewise. (gen_decl_die): Likewise. --- gcc/dwarf2out.cc | 102 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) diff --git a/gcc/dwarf2out.cc b/gcc/dwarf2out.cc index 35322fb5f6e..8f59213f96e 100644 --- a/gcc/dwarf2out.cc +++ b/gcc/dwarf2out.cc @@ -13612,6 +13612,78 @@ long_double_as_float128 (tree type) return NULL_TREE; } +/* BTF support. Given a tree T, which may be a decl or a type, 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 || !target) + return; + + if (TYPE_P (t)) + attr = lookup_attribute ("btf_decl_tag", TYPE_ATTRIBUTES (t)); + else if (DECL_P (t)) + attr = lookup_attribute ("btf_decl_tag", DECL_ATTRIBUTES (t)); + else + /* This is an error. */ + gcc_unreachable (); + + 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 = TREE_CHAIN (attr); + } + + /* Strip the decl tag attribute to avoid creating multiple copies if we hit + this tree node again in some recursive call. */ + if (TYPE_P (t)) + TYPE_ATTRIBUTES (t) = + remove_attribute ("btf_decl_tag", TYPE_ATTRIBUTES (t)); + else if (DECL_P (t)) + DECL_ATTRIBUTES (t) = + remove_attribute ("btf_decl_tag", DECL_ATTRIBUTES (t)); +} + +/* BTF support. Given a tree TYPE, process any "btf_type_tag" attributes on + TYPE. Construct DW_TAG_GNU_annotation DIEs appropriately as children of + TARGET, usually the DIE for TYPE. */ + +static void +gen_btf_type_tag_dies (tree type, dw_die_ref target) +{ + dw_die_ref die; + tree attr; + + if (type == NULL_TREE || !target) + return; + + gcc_assert (TYPE_P (type)); + + attr = lookup_attribute ("btf_type_tag", TYPE_ATTRIBUTES (type)); + while (attr != NULL_TREE) + { + die = new_die (DW_TAG_GNU_annotation, target, type); + 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 = TREE_CHAIN (attr); + } + + /* Strip the type tag attribute to avoid creating multiple copies if we hit + this type again in some recursive call. */ + TYPE_ATTRIBUTES (type) = + remove_attribute ("btf_type_tag", TYPE_ATTRIBUTES (type)); +} + /* 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 @@ -14010,6 +14082,10 @@ modified_type_die (tree type, int cv_quals, bool reverse, if (TYPE_ARTIFICIAL (type)) add_AT_flag (mod_type_die, DW_AT_artificial, 1); + /* BTF support. Handle any "btf_type_tag" attributes on the type. */ + if (btf_debuginfo_p ()) + gen_btf_type_tag_dies (type, mod_type_die); + return mod_type_die; } @@ -22986,6 +23062,10 @@ gen_formal_parameter_die (tree node, tree origin, bool emit_name_p, gcc_unreachable (); } + /* BTF Support */ + if (btf_debuginfo_p ()) + gen_btf_decl_tag_dies (node, parm_die); + return parm_die; } @@ -26060,6 +26140,10 @@ gen_typedef_die (tree decl, dw_die_ref context_die) if (get_AT (type_die, DW_AT_name)) add_pubtype (decl, type_die); + + /* BTF: handle attribute btf_decl_tag which may appear on the typedef. */ + if (btf_debuginfo_p ()) + gen_btf_decl_tag_dies (decl, type_die); } /* Generate a DIE for a struct, class, enum or union type. */ @@ -26373,6 +26457,20 @@ gen_type_die (tree type, dw_die_ref context_die) if (die) check_die (die); } + + /* BTF support. Handle any "btf_type_tag" or "btf_decl_tag" attributes + on the type, constructing annotation DIEs as appropriate. */ + if (btf_debuginfo_p ()) + { + dw_die_ref die = lookup_type_die (type); + if (die) + { + gen_btf_type_tag_dies (type, die); + + /* decl tags may also be attached to a type. */ + gen_btf_decl_tag_dies (type, die); + } + } } } @@ -27129,6 +27227,10 @@ gen_decl_die (tree decl, tree origin, struct vlr_context *ctx, break; } + /* BTF: handle attribute btf_decl_tag. */ + if (btf_debuginfo_p ()) + gen_btf_decl_tag_dies (decl, lookup_decl_die (decl)); + return NULL; } From patchwork Fri Apr 1 19:42:13 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Faust X-Patchwork-Id: 52590 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 86983383943F for ; Fri, 1 Apr 2022 19:48:37 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 86983383943F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1648842517; bh=b3GVu8QC4Oj19crSUy0IFak6A3+ipgCEX38vQ7vRIGE=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=gQQUsCJqw8X+CmqiOQZjx9cuakItK8Hzmhj/48xP2fw46GK+x74cm58HkSj2KoWKF XJg7oyyQjh2MrHW/l40h8hfF2OLBN8jieVuZCCHzINHQwg1FZ5AdGSNDfu5Gj4yH02 qc2cuVuYHaFY0NApR7DlcPggBSJ3o70Wr7L/h1pA= 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 E83F83858434 for ; Fri, 1 Apr 2022 19:43:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org E83F83858434 Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 231Fwnmj017615; Fri, 1 Apr 2022 19:43:02 GMT Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com with ESMTP id 3f1ucu04y9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 01 Apr 2022 19:43:02 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 231JgCKn025532; Fri, 1 Apr 2022 19:43:01 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2103.outbound.protection.outlook.com [104.47.55.103]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3f1tg9j7nv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 01 Apr 2022 19:43:01 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Cp8L7KbSQlYdCO7TJHBL0GPgsRNYQIWYRIwznnfaGBJBCtDn6S8u5rn7pvRcgC1qRjr5OOSypeN1jkrdmKIxYviXtlT0NKYIlYlHOoAmEwMtBv3zaseRansrZmM7vFddss0fQKAXpaPVl7/h/l7xYVa1ZRtisIaqoLcBgKg+8VOvOWifVqiW6j76JBD/lvGDZKhpeOCOTRdlmPoOOT3KZOeQNtsMLaYC4wk78R9GT1xEnWUachTY45++84fPrCZvDyD1GoXioIXOcgdRAM2CT9gasKig/jj3XnivWEdhcAgRABELy50uVlmhCBcG7eq3rqgEpiUacmF7oMFoDgl8GA== 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=b3GVu8QC4Oj19crSUy0IFak6A3+ipgCEX38vQ7vRIGE=; b=EMrG7MrJZ5Lu385YsENT/9Wj4dpKIqqGizmaghAXYEPbYdMvtqvIQ+Z46g3pk74d6Dp3qbXkqasmQYXS4cOIfBly87IBfYp9/kD60oZfQPdeOM6kG9SFs3XBoRVhsqDY+dqge9P0bz7z9vl1JVxX11fDOPmGrHs5go8IY7Ez8MQ8dvBG0vlXDAMe0em2u07K0aSzcaBh6SBj6N/mh1DKRJWv2K/+bSor0IB9UED3yplVzeCyf12XAi1vM0RIUpe91GvcSbi4viQxpRFKyveyAGW9bqqGU1rgOPQqpIdMiDi9+3A+IQncJGj/jbvVMRgQHodxYx+XqawLHAxfs/kkFQ== 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 MWHPR1001MB2286.namprd10.prod.outlook.com (2603:10b6:301:2d::35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.19; Fri, 1 Apr 2022 19:42:59 +0000 Received: from MN2PR10MB3213.namprd10.prod.outlook.com ([fe80::705e:a465:c30b:fec6]) by MN2PR10MB3213.namprd10.prod.outlook.com ([fe80::705e:a465:c30b:fec6%6]) with mapi id 15.20.5123.021; Fri, 1 Apr 2022 19:42:59 +0000 To: gcc-patches@gcc.gnu.org Subject: [PATCH 5/8] ctfc: Add support to pass through BTF annotations Date: Fri, 1 Apr 2022 12:42:13 -0700 Message-Id: <20220401194216.16469-6-david.faust@oracle.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220401194216.16469-1-david.faust@oracle.com> References: <20220401194216.16469-1-david.faust@oracle.com> X-ClientProxiedBy: DM6PR03CA0052.namprd03.prod.outlook.com (2603:10b6:5:100::29) To MN2PR10MB3213.namprd10.prod.outlook.com (2603:10b6:208:131::33) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2cd0054c-6d1f-4cae-5074-08da1417d3c0 X-MS-TrafficTypeDiagnostic: MWHPR1001MB2286:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +SifQWDRo1SFuc+vQOw78ln72V4kdSE7i/BSSKUzgQsAQfrezcZzmYpsKSlVjfF76BGCNwbW9jtH2DAEBiR2iNm8PtzkWenOQvCb9Qr1nIW7kQIjyf2OkVqyYDlrWkVe+hXvqBqNYt+iFUgKK3tvEtGirBczeQdPIu+KYUCVlpIBXgp3cpnqFDPHTlfUvum4xe08H1m//W7pBSc6O+yvVYKe8EdJi5bjtbk6kI+8/EHYDEDePc/izPvdu4VMxkOgJUMbhhBFEKLeiv4+RIZC/IDjaWYX32QCVTEs+dv9SrylBnYZEC0/iTLUP9sA6fsa/SPbqbhXIyr3jzHEkOHvBwvolM3vFz4RdNz4A/r1R+jchyakEG9VmM+nKNwWzkNDoSobRxJvIo6j88SVUpeqbTrREaTkaZhI5PO7v/mZm38MvZ/wv1DpOmD5qbBd3pU3sTRfhRNId/TBNpdLgQwtpaizBTtYqpXB3Hlop9eGQwGZ7HFQWKcM7OwTOahcmEgBWsnIFki+P9GeXxrLsx/RZ4OXIFjo5Fvo8Uz/pwLXo80yM/gJn6RJhh2DJ1z3bIM8hzBQR6FQuFm0jFafuEXP685up14xfz8GUN+lfzadSYd2q/Ah21fB/gqmxkbnXbz9YYM7f1itOH1ERlxAszkZiznvMla+4JmR/hZjhAZz9FOvvpiKYm+n1wn7gvvW/bOYIe79FO8ciI/ktd4bsaEUCbiKZopH/FJHa5xLKdR9uFd+LNPOBC96kvZdjUTNkkiqRwX/dbt3Q6tMPr45Csgfxg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR10MB3213.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(66946007)(6916009)(316002)(36756003)(66556008)(5660300002)(66476007)(508600001)(38100700002)(86362001)(6666004)(8676002)(44832011)(4326008)(8936002)(6486002)(6512007)(107886003)(52116002)(2906002)(6506007)(2616005)(83380400001)(186003)(1076003)(2004002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: eKgippIZ7WihEooVnqI86xpiy8bCA3zquFx8Osf4JcX2yi2mHyeVVYZTm21X0AzNI0rIZkUCsEWlKT8P8B7AyN5C6Y943s34zECvW7Hku3Qx7tRRRMDpk8DRfhxVZ9PlHGhe/cHqTyr1NuLWBbjXUHeD17spdUS7bY16lkD8lD19r4Fieq9G8JQxxVwt2IuTALAit6rHR9x0OEZA3luSSO3L5Y0kQUfMd5tsPt45YA2AtI5mStZJkUqcUkoonJLkgG3+aklzF8Tr2O1cAxUo9vwPsxALXYMF7hGwoyBfit5iCARfwixG85B62DAz2nKVEWDj7wKbUUKj+U7AkI/TyhjodC8Gkr/cKf6GUAhF1+xoi2V0ZMMP4cHH67t/ZkZGcxF08adUL9oY5oq3iCxKUvzR8xL3PuL6OCWFJicAa7cCjFLBdgJ97IoYvcopYk+1hgXbzPp9hW9deny2xRRxcxnLaxiIAqNmAPbizboHTQ2a1SS7WnWaiCsY947Gd5qVcM8PMVOijKcGGnouvQWibayk+KoK1AXz9QGOsJDE28nSg93SD/PJk8308GE4Y4dSaBU5H8lFpfCxUhnQ5DJVeCmr7yCVgfYx11xEvNWqdbxYc1Nu3R2PqX+1Hahgs/gNw68qJ0fw6UUgCqrcx1iBVFPzf1wZ4a46oR2fo7NNKVRXel7GJZMgf/CtEjIh3kVq0sF+409eEKFbkpWR9dSp2XVy4fSsJtRgs1ysYbMQjyelc501LEiOhchI5k4ukZChOrwDb70ExT/4kpMy1a7aNPMVtyykiZpoB/mUnOZS0e2pxLGT7N2MH62t9Sgh/AM2//8qDll+0OYEQcr0MYCbVCxWhUX8975iqlYgBC4D+kvUuBgyF2vcnc2p6oJ00XqXMZ2ZAY2DHe0M9o7l9o8Zfmxb0r2ogKHatsnZAwEjSTODyVMOHni+RltRZP8GBmQppBvWkw1uGql7V3aOkblRpWM1iC7mPas84D3k9ZaXnVUngtHLE+rC9vHvY7dc6ArL6w7+SmV2VYMYer69d0xElP9Cor83NvYcRAqdQeXUNFtEvXM7mKixNNC0YAS95SsfkcpJcISmoG40UfHr5I4dji5qWpSyuHFQ3ZHxhhmE/9lMAhL3a0m2yaNd89tfm3JaQUfWs3RfIY7QF0yRr1s0rTupoTP6PQ1HA8qVjP0Qzk2naiti7spYS83yT1w1l61hy/PnyIGSbfA6o3Dfs6OuCLTiWX01aOsgZC5DjriUAyf/Q4wMCp/sO3qq55um21kK7+uk5vwH4Jdu+99UEm5YSeZIgm6jyqJuln9S9CN9ubWwU7GoD3R63+dJTsAZtcsWQlOCvlAHnhgCP+PqxhR2/golcInPKEPVC4LecxnVamIHHpmAsRPZ1ABAJlzlk7lxt3HC5NxfivzopfMVUQBERgFXWTgEbwWoOEsAnDBcADLMD+H0Bc6krw2yc2ogZaWSCnL4tGeCfBfUN01jpPP+fSQESQRIvnITjWal+7AmzYX6ot/hRsDJGswcRu2X1ajh55kMNR4f9J4FDLaA7i0JzRvfDE24fIyHV2NV8tUTc2pYfd8lJiAymF5jN3CoUq1h5o+XTgt29RS9fQYvxYVtMIcY2oRrbHR71gOimS8Nbe1wP95vvFe8EG7toKMlQ3tQylS2wRC/vwtGRrJVvnNllhaG3dkev59Td/sjYlXlnNkythGEh/cE3nOccAvhmSi5TP0CaEMxqoSk3oG9sGQipxh6vpHtDW4PUEu7RpVCW9LVaGckjmmaHQMr/nCTXvcl X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2cd0054c-6d1f-4cae-5074-08da1417d3c0 X-MS-Exchange-CrossTenant-AuthSource: MN2PR10MB3213.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2022 19:42:59.7152 (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: JAji/7wiHYNBJDhuIGaDGpuX7ubMdFIQNX59V8aU3PtqwRN0TsZa2y6HjunDEp2iXGOg7urDD06DgJhXl6qYHg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR1001MB2286 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.425, 18.0.850 definitions=2022-04-01_05:2022-03-30, 2022-04-01 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 adultscore=0 mlxscore=0 phishscore=0 spamscore=0 suspectscore=0 bulkscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2204010093 X-Proofpoint-ORIG-GUID: ngclLeR-qNsteDRs_tdagJZUCauVL0ij X-Proofpoint-GUID: ngclLeR-qNsteDRs_tdagJZUCauVL0ij X-Spam-Status: No, score=-13.6 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.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: David Faust via Gcc-patches From: David Faust Reply-To: David Faust Cc: yhs@fb.com Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" 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 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.cc (ctf_add_reftype): Add NAME parameter. Pass it to ctf_add_generic call. (ctf_add_pointer): Update ctf_add_reftype call accordingly. * ctfc.h (ctf_add_reftype): Analogous change. (ctf_btf_annotation): New. (ctf_dtdef): Add member for it. (enum ctf_dtu_d_union_enum): Likewise. * dwarf2ctf.cc (gen_ctf_modifier_type): Update call to ctf_add_reftype accordingly. --- gcc/ctf-int.h | 29 +++++++++++++++++++++++++++++ gcc/ctfc.cc | 11 +++++++---- gcc/ctfc.h | 17 ++++++++++++++--- gcc/dwarf2ctf.cc | 2 +- 4 files changed, 51 insertions(+), 8 deletions(-) create mode 100644 gcc/ctf-int.h diff --git a/gcc/ctf-int.h b/gcc/ctf-int.h new file mode 100644 index 00000000000..fb5f4aacad6 --- /dev/null +++ b/gcc/ctf-int.h @@ -0,0 +1,29 @@ +/* ctf-int.h - GCC internal definitions used for CTF debug info. + Copyright (C) 2022 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 + +/* These CTF kinds only exist as a bridge to generating BTF types for + BTF_KIND_DECL_TAG and BTF_KIND_TYPE_TAG. They do not correspond to any + representable type kind in CTF. */ +#define CTF_K_DECL_TAG 62 +#define CTF_K_TYPE_TAG 63 + +#endif /* GCC_CTF_INT_H */ diff --git a/gcc/ctfc.cc b/gcc/ctfc.cc index 6fe44d2e8d4..031a6fff65d 100644 --- a/gcc/ctfc.cc +++ b/gcc/ctfc.cc @@ -107,6 +107,9 @@ ctf_dtu_d_union_selector (ctf_dtdef_ref ctftype) return CTF_DTU_D_ARGUMENTS; case CTF_K_SLICE: return CTF_DTU_D_SLICE; + case CTF_K_DECL_TAG: + case CTF_K_TYPE_TAG: + return CTF_DTU_D_BTFNOTE; default: /* The largest member as default. */ return CTF_DTU_D_ARRAY; @@ -394,15 +397,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. */ @@ -514,7 +517,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 18c93c802a0..51f43cd01cb 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 @@ -173,6 +181,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; }; @@ -212,7 +222,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 @@ -396,8 +407,8 @@ extern ctf_dvdef_ref ctf_dvd_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, 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 747b2f66107..32495cf4307 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 Fri Apr 1 19:42:14 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Faust X-Patchwork-Id: 52591 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id CFDB1383943F for ; Fri, 1 Apr 2022 19:49:35 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org CFDB1383943F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1648842575; bh=PkApH+UnCWiP1PNZqplDWBcdRlcQRJiyft09hQfDGK8=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=c+nrvj8WY7rM7TTdFehC9gVXBEOeaiof6NN7q8MJZ/C59fqAP27L8M4CwjtwPqfqX ru39JLBlakVI+7GyvBLBjIehdpATFow3vXILS1pWMKHBWtP8UzxttlR0R59b/V5GLS wnygLYT40uw6Hi37E1bmaUavnKaPWWKDLoIxCHe4= 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 561CD385DC3B for ; Fri, 1 Apr 2022 19:43:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 561CD385DC3B Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 231FvH4c018522; Fri, 1 Apr 2022 19:43:03 GMT Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com with ESMTP id 3f1se0qw7a-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 01 Apr 2022 19:43:02 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 231JgCKo025532; Fri, 1 Apr 2022 19:43:02 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2103.outbound.protection.outlook.com [104.47.55.103]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3f1tg9j7nv-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 01 Apr 2022 19:43:02 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Y+hZ7E7hdTl9szzC8X801C91l0Y24SJcqWamM1wT88K3chmKV5QlBjtOikC5kRIc4V8rwgQoulbhQ7jmyJtdTF06mvk+YYmPNIMy1bkVvohxOURyIoYTHUkoNNAuK/MNEgXLloG/hIe9++m7NpsP47dukIqu/LV9D+8Ql5bSRmBvkTrwYfEbNb54fSwc9Y7ivUSjyxx5sFFAIet1DqJXxl+VX9n83LyD04cWKrHMtXuDN/pcCitdhOawsc2P219Ge3JA2y+cP7MG0gZ3mmvpds0Z7YP587R+nzQ/+q9LAaIohvt5CX0x98EHkj/0cfW9T/VznheDChIkAiRe+W5k/A== 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=PkApH+UnCWiP1PNZqplDWBcdRlcQRJiyft09hQfDGK8=; b=S5IPMPKFd350Lzut6u3mYU4+b4Sr/1jyz+GGU3F5OWTgdBjs8xx0rWgggcbFFdtwjTGShTLYl3E54910oKM/npvDjBgwEm4QLxQQT38wVaGGguBCFHIx4NoKZrCQw73Qb0AkHA6KYadEdofY5cIcmKBjxuwsNv4AImkNPaj4AwSGHA+YBleTjle1X3NOzoVq3zn/osMaxzfii0aeP2cAVTbSBTP57ieu9Id5u/QmzS5hLuqSAocQLUivxUmaHI6eUNkukdoxGjIe17yKt/+j2Ywk/c6vKBBYBuoM8lMnChqygdj06rMa6wWtH6phTXvNATzQYlWFL53B7Sd2OQMrHg== 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 MWHPR1001MB2286.namprd10.prod.outlook.com (2603:10b6:301:2d::35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.19; Fri, 1 Apr 2022 19:43:00 +0000 Received: from MN2PR10MB3213.namprd10.prod.outlook.com ([fe80::705e:a465:c30b:fec6]) by MN2PR10MB3213.namprd10.prod.outlook.com ([fe80::705e:a465:c30b:fec6%6]) with mapi id 15.20.5123.021; Fri, 1 Apr 2022 19:43:00 +0000 To: gcc-patches@gcc.gnu.org Subject: [PATCH 6/8] dwarf2ctf: convert tag DIEs to CTF types Date: Fri, 1 Apr 2022 12:42:14 -0700 Message-Id: <20220401194216.16469-7-david.faust@oracle.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220401194216.16469-1-david.faust@oracle.com> References: <20220401194216.16469-1-david.faust@oracle.com> X-ClientProxiedBy: DM6PR03CA0052.namprd03.prod.outlook.com (2603:10b6:5:100::29) To MN2PR10MB3213.namprd10.prod.outlook.com (2603:10b6:208:131::33) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: eef0513e-19a5-40bf-1f76-08da1417d454 X-MS-TrafficTypeDiagnostic: MWHPR1001MB2286:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 88e0lX39rUnGlbhb0HxbPEVJWTsogkXXFDGJN+MJDTKAF3jSmpithzdQT5O64HcAEBTtAOSI55pvUujnukgJIMCm08edeTcGMYk+qBfXpNTS8AN10OgdtitP+87ytR5h0RuKUZAg9uYEoJ5+hpx23heOPDPhKEmGTLCQIYUFCj/ob3UZqpj9J+JPNOnkJR+zx7QbvFQiXnDrLw4PNRTbub4pDAC+C5LY6pAKZUCEUoLemBk3PC2gWRrc1afjPB6hWdYTFZ7tDR04BfVZrWwndKIDWiZpigrRPx++cJ+9GYHnmKDqMtrAwbUZGvsCzX8mU25q4/4SfZVDMhnwv0rFT7Hb3gK+o4KgYjUiwFctscS9Oipx46vWHT0iplQOY9/J0PJdkm0DF6EoMdtehOdV+/P+8SrKDJvT5NTJUEtuLk3SAsjzaAJmFA4DbzG45NX7EdBK9CGBi8tjQBPYZVIC9fosJzPQ0gFsgiDl8hiOSKIXmA2tc5CrxUZUSdDItt+/gbqQWepsBTqjK136SV2Mt8LaYlC8yQXIp0bNv+4keTNMqjA2PK+TEDny2HnhoJ7LxSKvV4LvojS+KsXG/Mxb25UvgJINGNTfovuQCDUqsGcrwUcbj5CAIbDodcwxFOIp+j8FaDgulVN1pPuhFX5qkA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR10MB3213.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(66946007)(6916009)(316002)(36756003)(66556008)(5660300002)(66476007)(508600001)(38100700002)(86362001)(6666004)(8676002)(44832011)(4326008)(8936002)(6486002)(6512007)(107886003)(52116002)(2906002)(6506007)(2616005)(83380400001)(186003)(1076003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: rdSeiSgSbbiRSrSd2bptxclC1fQvUcds1U5W3gdX04zZ6/a4ZJCczFQY7ttA4xDx0DXI7Is7VHwCirXo9DYzdMZfKLj3fHk7tqlxiOlBVNC51kTDRMsNKMrXJJkZ8Cbcs5n9/UQkbUqtInFdnMuZ2EwrppnRaPd9YwkDe/NyBm+4djLCDFFVHikkwgjCD7t265Y5yaJq84r7KLxjvll6/NHlpsJ7Ds99QnmU+UBOWUZ89aQE+dVXk1vOrgGUR1hwwSCkDhUmRntiVKBMRxL0slknyeSaLOMEHQs5Q9ZguluRu+H00HuAv0F+92dSsqRUjh6gjBwQdVm3sH2R2zQdTcF6InrNbEFJDQO4DVvSKucWuLe2E0W5rN70tRp3C7xfarhM9lcp6AgYCQ6C8S2Ye3vI+KvK6WWYCUhL0yuKUvHdJZVEZ8joDDwC6i3jHoQxn+joglRVJKAC6AkoBYwl3AZ2lkPAEfWvxNHvZZdrPJUcluKF/HIxhC9Pbynaij8BKec/olLf/6NlSMVKVfDcbe4YOuZOCUmLcVZ6GiQZF95BaLHY5vOzdKLTtkXDiLAbHY7+ovBW+IosnlhKOYmcBNGBftwy3Y4pQIsOHZGT3gN1lHBe9K1sM0RNxGLIWXiXxVgBP/jEvLxOL7/NnS2sXOBw8XFRCir38DHpgE+NIHbejSbpR1Snnk+G1pMw2kWzI4qYi7IqRdfpo0Code8EaVPv1SFOd0tp1sx7lexF2NjQHn92MHonLOfxtdUge/iAAd/De2qSzxn2alMYYcIrDGFtyz40xMynNSjWkZ28QftvbZGyVvH4b090iizlZS0HDP2zb+Z0qQuKLo5zRMOE+w09+VGJlJVkaVsA8x3xLuLpAPCVPMGeo7v1RWfy98ZHM4WOm6XfVQMmfP2Qki/p7DXaeQU7Z2oqYDBo9mTdWWwaAllBUCgtmAPS5W/nxOJZCPiEe+j5ZDTuQ5alD3hMOzopBkVUsFReJSyjqFx5UwXbu9aD5qYIDWrjIfyPmKPfSgVk4Ey6y8FfkSzV0+rbtKaJFS5SiAGOI1cNXOIuytPq2rGZ8+kHSEgJMXAyQ5dy4cbaEyU6tG/w3nTmvMugv8bXi/pUQWwwkyaWVPHmw9fiTNzpt+TRSKFnrtkaKyA8jRM2rkx0qVNd51U73rQ7OQIGjIAHCpc4gGiQbRbG/BNVkvtIOnOB8UPCTXAd81hJA03po9Y3EIc+eliBnZlxaSimmYddQDWdIB9hXr7OGQwv6RW3iXm7zV8pWdkn7RNJ0HSJch8Fd6mGsOuxdKJRgjH3F+MwjU7qdOK1MRXZBAXbmFy+RnT9PFnZZohJVMF80L3GM8xDGpomVM7hMnlTOzK5oWfrUP0yiQ4p7ha88bWygcZkeCUU+imxFBCbevK+nkAR52ZeJHDTAz6NPe3MbvKO8RGkJrSwNt1aFpwjgTSTmlWcEcVKKXTCjFaKNT2Ya29gy1Kcp/HIsqGpDU3/ygFEBt3G8xuX6ZKcKJSdmCJ9ILt6EIUg/1Zw1/xBrtAct3ASA2OPjcgf92rkbCLXVB86FfiGpVvznltMFudyC7NfFN6hjJ3DQqY9+Hc6AoedoNqGyHefGSHbfYNXVuLVbSPrdOUrxNCejndyP2QTCJfXbi1N4AjVi0GdTwhlmfnnwoKklutCsUjdYq0hUvTZVWN1NW/PNsNoL5ySl4Hkj8K3fyAZwRciqevNFTTaFxQrJiscYHJM9E7t6yZjdd+clFeEvm05Uf7vl29TJMeOiSFfHZmIe5JSnH5fJ+5lv3KG X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: eef0513e-19a5-40bf-1f76-08da1417d454 X-MS-Exchange-CrossTenant-AuthSource: MN2PR10MB3213.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2022 19:43:00.7463 (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: fYDybvQr9SvFbEf7sdCamG9Z1uW6vgr9m2M8iDpAcQxeHuDo7GFKMLYwK2PThdR1re8dxhxwsSVMZdQB89SYwg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR1001MB2286 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.425, 18.0.850 definitions=2022-04-01_05:2022-03-30, 2022-04-01 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 adultscore=0 mlxscore=0 phishscore=0 spamscore=0 suspectscore=0 bulkscore=0 mlxlogscore=805 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2204010093 X-Proofpoint-ORIG-GUID: zxQU6xX5dpM_l_sAEfQ5ZZS4Z0mvW6ZW X-Proofpoint-GUID: zxQU6xX5dpM_l_sAEfQ5ZZS4Z0mvW6ZW X-Spam-Status: No, score=-13.6 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.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: David Faust via Gcc-patches From: David Faust Reply-To: David Faust Cc: yhs@fb.com Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" This patch 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 or CTF_K_TYPE_TAG types as approprate and added to the compilation unit CTF container. gcc/ * dwarf2ctf.cc (handle_btf_tags): New function. (gen_ctf_sou_type): Call it here, if appropriate. Don't try to create member types for children that are not DW_TAG_member. (gen_ctf_function_type): Call handle_btf_tags if appropriate. (gen_ctf_variable): Likewise. (gen_ctf_function): Likewise. (gen_ctf_type): Likewise. --- gcc/dwarf2ctf.cc | 113 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 112 insertions(+), 1 deletion(-) diff --git a/gcc/dwarf2ctf.cc b/gcc/dwarf2ctf.cc index 32495cf4307..8811ec3e878 100644 --- a/gcc/dwarf2ctf.cc +++ b/gcc/dwarf2ctf.cc @@ -32,6 +32,12 @@ 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 +gen_ctf_variable (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 +553,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 +566,12 @@ 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; + + if (c == dw_get_die_child (sou)) + idx = 0; + 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 +639,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)); } @@ -716,6 +735,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. */ @@ -814,6 +836,11 @@ gen_ctf_variable (ctf_container_ref ctfc, dw_die_ref die) /* Generate the new CTF variable and update global counter. */ (void) ctf_add_variable (ctfc, var_name, var_type_id, die, external_vis); ctfc->ctfc_num_global_objts += 1; + + /* 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. */ @@ -831,8 +858,12 @@ 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. @@ -909,6 +940,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)) @@ -917,6 +952,82 @@ 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. Type tags are inserted into the type chain + at this point. The return value is the CTF type ID of the last type tag + created (for type chaining), or the same as the argument TYPE_ID if there are + no type tags. + Note that despite the name, the BTF spec seems to allow decl tags on types + as well as declarations. */ + +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; + ctf_dtdef_ref dtd = ctf_dtd_lookup (ctfc, die); + ctf_id_t target_id, tag_id; + + if (dtd) + target_id = dtd->dtd_data.ctti_type; + else + target_id = CTF_NULL_TYPEID; + + 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, &tag_id)) + (void) ctf_add_reftype (ctfc, CTF_ADD_ROOT, value, + type_id, CTF_K_DECL_TAG, c); + ctf_dtdef_ref dtd = ctf_dtd_lookup (ctfc, c); + dtd->dtd_u.dtu_btfnote.component_idx = component_idx; + } + + /* BTF type tags are part of the type chain similar to cvr quals. + But the type tag DIEs are children of the DIEs they annotate. + + For each type tag on this type, create a CTF type for it and + insert it into the type chain: + - The first tag refers to the type referred to by the parent. + - Each subsequent tag refers to the prior tag. + - The parent type is updated to refer to the last tag. */ + + /* TODO: given this type chain requirement, the representation of type + tags in BTF only makes sense for pointer types. Should this be + enforced here? */ + else if (strcmp (name, "btf_type_tag") == 0) + { + gcc_assert (dtd); + value = get_AT_string (c, DW_AT_const_value); + + if (!ctf_type_exists (ctfc, c, &tag_id)) + tag_id = ctf_add_reftype (ctfc, CTF_ADD_ROOT, value, + target_id, CTF_K_TYPE_TAG, c); + + dtd->dtd_data.ctti_type = tag_id; + target_id = tag_id; + } + 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 Fri Apr 1 19:42:15 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Faust X-Patchwork-Id: 52593 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 0C9EB3838016 for ; Fri, 1 Apr 2022 19:51:44 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0C9EB3838016 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1648842704; bh=h8ooKokh6NBKf7aGPrRskAhVmJzJSZDYPtR7WC2cmwk=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=qjN7T3eYDfnbEhG3El+UhghI6sayY39s8R0TqBgcf3pcBFdOmvn1VAaFFKCvy/Hd6 k667Q0enS0KIDSMUOpMgPSp5uwFiRnqWYl4dps8OFkhqRH7LWwwL5jnwCimZST9b8m WAwGtcCrP2QaU7HGOTq1YiyvCYiopKjiDbtIQbLo= 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 3A05F385E44D for ; Fri, 1 Apr 2022 19:43:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 3A05F385E44D Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 231G7Yww026831; Fri, 1 Apr 2022 19:43:05 GMT Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com with ESMTP id 3f1tqbfkmk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 01 Apr 2022 19:43:04 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 231JfNmx037373; Fri, 1 Apr 2022 19:43:03 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2108.outbound.protection.outlook.com [104.47.55.108]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3f1s96afqs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 01 Apr 2022 19:43:03 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=N2Y2eg8SPKKyv08NjhX9Osnm42ULa8vrJ96UAOojZ5COKQJ9xDKCJRH8orbBFW+KfsXltd/mdkpf58wUjJ1cDQTGje21Dfmdqvo04szbsG9ofzg5SRmA6MIhFHXXUCS7aUcmCgyxKhGY9j7eDiSf8i00+aUf+SuMd8P9sddgDV0g7i8Gbv9pmClOO41h1a97rYId+ozRsHoKqww0NH8Cg//0OuNiUoeFyal/naGPzFEvXC2KHKr4FKwdEQfVQh6wJxoQjhQWCA/r7TCFCKfWliKjSHBu7XawerzkC2at/I7vGAEqJgdHc7ciA4SRYPRW2M/npBZSBo/8hOQ333M81A== 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=h8ooKokh6NBKf7aGPrRskAhVmJzJSZDYPtR7WC2cmwk=; b=NVcuc9CVAPUVXc8NEj15Zw3ZdZLlo0k6Qhj3TIZMIWkMFSRZ6ZgX5F8Uyfpy6WKUc6cfrGNtR65xOTHeSJsKu6pcxMuFjQ+JWj9+zhq3unLM7wo3GYVILIEUtlMLAxf5wDNNaWDePlm3314XqkziYTXvAZp+0QblUkKauqimgi1dxX9ggmc6GxVMGTrpEz86fwTnEOxHnxcfJQRTGPnbx4zHKmcVYLqgFy/JhN6cq1sxyZcMdag7d8H8zEG5V1Nud4vJU1aFyB063pLELWG6Irj4Oz10qaU2njaOj+4Z+igd8j+XAwVhltSttig4+Gn2ks19dshQ4PG5/03tLcbStQ== 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 MWHPR1001MB2286.namprd10.prod.outlook.com (2603:10b6:301:2d::35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.19; Fri, 1 Apr 2022 19:43:01 +0000 Received: from MN2PR10MB3213.namprd10.prod.outlook.com ([fe80::705e:a465:c30b:fec6]) by MN2PR10MB3213.namprd10.prod.outlook.com ([fe80::705e:a465:c30b:fec6%6]) with mapi id 15.20.5123.021; Fri, 1 Apr 2022 19:43:01 +0000 To: gcc-patches@gcc.gnu.org Subject: [PATCH 7/8] Output BTF DECL_TAG and TYPE_TAG types Date: Fri, 1 Apr 2022 12:42:15 -0700 Message-Id: <20220401194216.16469-8-david.faust@oracle.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220401194216.16469-1-david.faust@oracle.com> References: <20220401194216.16469-1-david.faust@oracle.com> X-ClientProxiedBy: DM6PR03CA0052.namprd03.prod.outlook.com (2603:10b6:5:100::29) To MN2PR10MB3213.namprd10.prod.outlook.com (2603:10b6:208:131::33) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b2fa15ba-c390-4c67-9e9c-08da1417d4f8 X-MS-TrafficTypeDiagnostic: MWHPR1001MB2286:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: tWPjkf2l6o9NvzMug8L01DfLzL6egXCwiyHoG4cKZNwu2adCQuL8HEmwqxD9NJ+3q5Ho0ddD2SUXphv2YIGcUGoeP7VW8N6D+SDZ1Mryqf3D28XopzZDWpjfrFc9L4nDLs3dGIUEoqCpJc9gVxu2NAUwaf0o3qaqHXmpBnbFlWvuPEATNfm/b4rrt5K40c++3TsXqClKV5qnv+l/1RM+fzwtgq8XPEIUVzHl7O3mw5fse42BktX1ECWtSNrhdC7CFHWxjxwhCv4rsXXc1lkNQp1YPFA3Zfy4wsly7M0SHj3kVpGYPhKPy1Voa8WSIWNnpYEwpFdtsMscZ1artSsOJDgSue4sosG/jI9HsqPOt7RfntqMD7XTRYaEvslHCjazBpHE591sPB8JKVXB6gX8HGBW17Ks/23twQGEsTSKQVst/YpdyxvhML6MEQ8K84xb2/TJwa7eSnjjv6LTaICMnC9XJgtVeZy0Ft/hpt+6Qg7yZgv/XgyADkXSMwObTt//HVv5u380Agm2ANOqym6SjjlTkPtWaUNuh6vd43zydk6hk8Ab1VX0qHevaqhBH9akP1zmfZD70/8sRlYzLVIVBdDC1NnkpFeyJssN5yJnJnyyrkr8QCwJDOAwquR7XsG6gKlIegZ4bbFZorg5r2QtsA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR10MB3213.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(66946007)(6916009)(316002)(36756003)(66556008)(5660300002)(66476007)(508600001)(38100700002)(86362001)(6666004)(8676002)(44832011)(4326008)(8936002)(6486002)(6512007)(107886003)(52116002)(2906002)(6506007)(2616005)(83380400001)(186003)(1076003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: mhHHaNHjbJSUlWyzDjtRAzo/KAxvCfbKobEhdewMKSeaNswxpuQ3qSzak6dUVEcF/2fUVNQuTl61jHNoKw8E/t4aIp8tZsNmyG6bZUVn8ICkvtZdMpb1h4fV8QHCLEx7W3+LNHLwYe4G01JYHuMPBuySS5+iRbtnSeJuWN0WLlnjD1rbDMbzTZvj128AWEij7DXC3w6u6Vtrj/xavTrv0bxXeC0FH896mjhEOCa0hJNs1y7B3a5ZyleNiFI/u0rRzGjOXt9tme8lYvNHmlDlhRuYTYkA7PMNJokx6KT8sUmrdhGfhg/zlHlU4BXYyw1E5P3/kQ9eov+LA5dCDkmHfbOu4ZwJi6MVQZNM5iDxrFf1P7wzjUdoJjKB64GrUumpmgz6i+utoaa35MgrYL05kCePh+BLU4ELjoPRvqsAfY/uU8MfDQ4IfArBhLq9bNEBSzIjtrYObU7K/NNJCYzsuD1+bju8pU3HwKOdFIE7H0d+tMvqtmMJ75YS6Ub8r7JvKZZB89vXYKjJHkQmMbl94A/tRG+5euoz48l5sd+UDDe0VP+BG/7XKx8NFAJ1ChKEN/FyyyG1HCUEJPa+vbxUNLRkpotEiHMrkb3HTqmEcB9vGT02UCAnJoBoDVOwi1zyrdYKf0ft83PTmtApcDtB9bAza6r/LZiYlYMCJL8dQ7Iun0Ky8CPm3GHkoPa6ADgvl0zm5Vu9bEv6NCAz8MOIJO+sjXCmYbtjR5aIPPgw1ANqzueCvv/qaum+kSpETZg3hrG5DdMOqpzGNaiVnosNNju6VohQtgDOPmeCTIQ8Aj7UFORPne5NWvDuCY0l9wfwj3LhdMv4qJm6wRVcYp5Lq2LO6kxj+1W6TiOR+XA0U++czN6Z2rTAtDIGUVjDWvQ59reqi4LvOmWQeDxyZHqMFdL4bNdlS5nPYo8FngIIMb31pjBCjBHbLj2Pwil2X6Cn2JK4ivCC9+R3yod5abN0JaKpP02BVDxkd1DVicm1D6du4ki4Rvvceh+wT6Tw8AZ5cYeqm6LbDnVQioV/SZ9nexGdpwbW9aDqh9bQMhBTe8mvWUN5vyxm8nbGLxHxeC8U5qhOMUN6MoF+kCLJDjCpImsDm6Ziu9ghMws6ZIyZ9de+eam1bMwnCDBLLral6MBQZWnJ2F7mj1s7rT4s8Eay1Z+8Ke2rgsc19K7f0vU/TzIbKX6tYnNCyug2wAseYPYEQDMswbEc98GWHL3WqFwWm7gvw397SSiDrVj/gVGFjql239ObrCkrbHfVeXcb8J0/vy5Dpwo3kKvkXNPT2wkzRf+jPckLBfiZDwBJ3+wEEvbqNL487lWu/ckbrSgNNJY57K/ZpkWOKS1PFuD0BELXaS8asCRFto+COyNmfC2LYb2+6a45OehXp1R9k7ceqMOJVj89N5EhRDaveAqvxFuobfBmlvUvbvhgJiR+ME4qixvEMlaoo91OZzyYhDk/FYDmPl9ubPPre8jGuh7iXqYg9VWo57jwWnUtCbAhJ9Ncn3v4OwCNFdjm5j+oNcnXFSgDfG5O63Ro6/5XbBcmr3PL5Qaoai0az831aim0GJvBs6I5GUvFJJLnj/foy1JSFC35WiiJNPDO5yCdRA6xYTcQkBGxtQhNWiQSSEX1GRW6pJr7m3U47gskoAYLaYl7cBFBMckOm0/xe4goNHRs5I8xhoBk877pL47HIX29sJiI6ENgtNGE4vsrvkm+7iUkOzMnd5rwWRBy4u5dUhuH9z6pctuzcYUZryG4XFyUANium/8PyIe2qvgLsHt/vPGQUzT7 X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: b2fa15ba-c390-4c67-9e9c-08da1417d4f8 X-MS-Exchange-CrossTenant-AuthSource: MN2PR10MB3213.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2022 19:43:01.7463 (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: ED7K4Ae55h838Og1f5QWsEGvBqhbrbpbgKutoXBorqh0uINaZlnJh01Hxx1sb6/oDTR77H6tCYOJpZVd1S13sA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR1001MB2286 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.425, 18.0.850 definitions=2022-04-01_05:2022-03-30, 2022-04-01 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxlogscore=999 phishscore=0 malwarescore=0 bulkscore=0 suspectscore=0 adultscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2204010093 X-Proofpoint-GUID: 5iG-ZKFcRY_lgEcOiWtymKIe3AEYIJUS X-Proofpoint-ORIG-GUID: 5iG-ZKFcRY_lgEcOiWtymKIe3AEYIJUS X-Spam-Status: No, score=-13.7 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.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: David Faust via Gcc-patches From: David Faust Reply-To: David Faust Cc: yhs@fb.com Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" This patch updates btfout.cc to be aware of the DECL_TAG and TYPE_TAG kinds and output them appropriately. gcc/ * btfout.cc (get_btf_kind): Handle TYPE_TAG and DECL_TAG kinds. (btf_calc_num_vbytes): Likewise. (btf_asm_type): Likewise. (output_asm_btf_vlen_bytes): Likewise. --- gcc/btfout.cc | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gcc/btfout.cc b/gcc/btfout.cc index 31af50521da..f291cd925be 100644 --- a/gcc/btfout.cc +++ b/gcc/btfout.cc @@ -136,6 +136,8 @@ get_btf_kind (uint32_t ctf_kind) case CTF_K_VOLATILE: return BTF_KIND_VOLATILE; case CTF_K_CONST: return BTF_KIND_CONST; case CTF_K_RESTRICT: return BTF_KIND_RESTRICT; + case CTF_K_TYPE_TAG: return BTF_KIND_TYPE_TAG; + case CTF_K_DECL_TAG: return BTF_KIND_DECL_TAG; default:; } return BTF_KIND_UNKN; @@ -201,6 +203,7 @@ btf_calc_num_vbytes (ctf_dtdef_ref dtd) case BTF_KIND_CONST: case BTF_KIND_RESTRICT: case BTF_KIND_FUNC: + case BTF_KIND_TYPE_TAG: /* These kinds have no vlen data. */ break; @@ -238,6 +241,10 @@ btf_calc_num_vbytes (ctf_dtdef_ref dtd) vlen_bytes += vlen * sizeof (struct btf_var_secinfo); break; + case BTF_KIND_DECL_TAG: + vlen_bytes += sizeof (struct btf_decl_tag); + break; + default: break; } @@ -636,6 +643,22 @@ btf_asm_type (ctf_container_ref ctfc, ctf_dtdef_ref dtd) dw2_asm_output_data (4, dtd->dtd_data.ctti_size, "btt_size: %uB", dtd->dtd_data.ctti_size); return; + case BTF_KIND_DECL_TAG: + { + /* A decl tag might refer to (be the child DIE of) a variable. Try to + lookup the parent DIE's CTF variable, and if it exists point to the + corresponding BTF variable. This is an odd construction - we have a + 'type' which refers to a variable, rather than the reverse. */ + dw_die_ref parent = dw_get_die_parent (dtd->dtd_key); + ctf_dvdef_ref dvd = ctf_dvd_lookup (ctfc, parent); + if (dvd) + { + unsigned int var_id = + *(btf_var_ids->get (dvd)) + num_types_added + 1; + dw2_asm_output_data (4, var_id, "btt_type"); + return; + } + } default: break; } @@ -949,6 +972,11 @@ output_asm_btf_vlen_bytes (ctf_container_ref ctfc, ctf_dtdef_ref dtd) at this point. */ gcc_unreachable (); + case BTF_KIND_DECL_TAG: + dw2_asm_output_data (4, dtd->dtd_u.dtu_btfnote.component_idx, + "decltag_compidx"); + break; + default: /* All other BTF type kinds have no variable length data. */ break; From patchwork Fri Apr 1 19:42:16 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Faust X-Patchwork-Id: 52592 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E8FDB3839400 for ; Fri, 1 Apr 2022 19:50:39 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E8FDB3839400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1648842639; bh=dJ/x5ECBlCTobbCoEyy0aQ0oPE42+uBFsNdtRM9QD/I=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=p1J70sCLGSQZ8JqXgFBI6NHoJpjW4p9baLQV7wGwjxIzSNtCPjqF5Okg/FiXkGGTa yPn3bH2WVxTHrKj+IDxRKyogqKiWH6zGBgcoI/Gl7rLmzE6iskyokrPiYQeyZ7dF9j aI7sHkg6MRoNjsLu6AO154hxgRjYoWtGnHSSjUmA= 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 AF1603839400 for ; Fri, 1 Apr 2022 19:43:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org AF1603839400 Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 231FvH4e018522; Fri, 1 Apr 2022 19:43:07 GMT Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com with ESMTP id 3f1se0qw7m-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 01 Apr 2022 19:43:06 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 231JfOLv037445; Fri, 1 Apr 2022 19:43:05 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2102.outbound.protection.outlook.com [104.47.55.102]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3f1s96afrg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 01 Apr 2022 19:43:05 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=baMjdxoFTlLEQfLhn0n0KT51ijfbTESOHmfRrmHCV3d6PN4tofrbuSAbNOBZ/yuQ3rikp7BbegET5TpVlxwlr07XgIxsmG6yOBYXMte3I/9G9MXy3u1hT21vTzkIARFJ0xanZn3OUu0oWa5y5XemZrlAcI7ObCl0iNTzfgG6vVs2bPvn3uuxin12pIvlK8yAH7I27EwWo928zP1Hmq/BD3uacMXEG1aoE5Lm1OzpJfohBxMnrdSwokwmOWBtVyRiJEebvX1cOddl6kMvmJK+jWSNjBuu2JEgpY842urK002tF8RuzQrNwtBufPGWx2zNJtDm+4y1DpgoHFnm7cVodQ== 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=dJ/x5ECBlCTobbCoEyy0aQ0oPE42+uBFsNdtRM9QD/I=; b=jlx4HmoHkNhPKewPnpVER35TxyYREtTPbD5B6LyIjNR0MrYgQ2OqrNL8vWOROJwOXHzYreC8JV5LYuQGvPNdpBhyGcp0LzQ9DE8JrRn4M2rzAwVYDwynElxnSwAYFkqT5LXI9Z83LWzl+dF1Rz911Fz34VPA6S8vY8VG1vGmHlzDJXYkBxM+xvpVlQk2AqzFucbYHYyVDrjsy+Bo98bIDC3vCTBiDFqddlxSnSncbVzuO9LRrQhfTx8S04PLAAvgkpab0x3Yu3V+1WetDJxkd7vaxURvQ3bLZgO5b72McfWGpRKrDRRnK8woCM/7BjjAQMtKIdS3tOR1LUMdsHjqGg== 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 MWHPR1001MB2286.namprd10.prod.outlook.com (2603:10b6:301:2d::35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.19; Fri, 1 Apr 2022 19:43:02 +0000 Received: from MN2PR10MB3213.namprd10.prod.outlook.com ([fe80::705e:a465:c30b:fec6]) by MN2PR10MB3213.namprd10.prod.outlook.com ([fe80::705e:a465:c30b:fec6%6]) with mapi id 15.20.5123.021; Fri, 1 Apr 2022 19:43:02 +0000 To: gcc-patches@gcc.gnu.org Subject: [PATCH 8/8] testsuite: Add tests for BTF tags Date: Fri, 1 Apr 2022 12:42:16 -0700 Message-Id: <20220401194216.16469-9-david.faust@oracle.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220401194216.16469-1-david.faust@oracle.com> References: <20220401194216.16469-1-david.faust@oracle.com> X-ClientProxiedBy: DM6PR03CA0052.namprd03.prod.outlook.com (2603:10b6:5:100::29) To MN2PR10MB3213.namprd10.prod.outlook.com (2603:10b6:208:131::33) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 25db7d9d-dfbf-443d-46a4-08da1417d585 X-MS-TrafficTypeDiagnostic: MWHPR1001MB2286:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /i2/muxIZmfMoasrFYlR+jMKMpit7pNUlsrqZYjgidWR3mjQwst4Spw+NSho4IxHZ5k7AQxHc+5uPbSvFWqCYUwNhS8PW+E/SKn/o0XPzHL7XgHRXZHQxC9ymOC3UpLb87+J7f8TXOVQvQpHl+llQe7T3ImrSsa/9sOwfqsqvWKy4vwciLNz43syl5Tvx6jevlB5ZqBSt9BzekQMIZYImSCxg+R4f81U+yErg4+bEBDscBilO1agv4l4tsdUOpQnNWpPDUEL2SQyvEH1dyV24429J5OUyvL+cSwD+NZEcsuv4sGWeqhM5Hv3WneZTjaCoQp/hz8xdzduK2bRb+69wiKsNDPjPdGJ+E9btDYWfxo/lmCwfhcBBTib7mJmzGpyt9p+JVUDGcKJFaCNQzQcoqdrdVA8UZ2mlhLeW+1Hd+wCdnMAnG0pOfvXlQne5htXHbP7ibkSfU1NDrp4YZyHKQqHUVaz04wrsn7YqTVivNEZ4aYtgf8lDIqhO38GVp3ep2jXsB4mLLTWivvuywbHFy+lur2M7kNKlANzDZkxanWUnDsNR6uPxpDy4SjP5xZGUrIPyjs4tq1YFF+7sObVJrU7Ibl3HLqVPGdqRqsXwj0ZnJKGrUwGV0QGDNhSnkjtlMsKhMfcVscgXcwpcvGSJUh9BdKPi39MTyS4p8IYXht7RqeP3fZ28ciIbEzwhWLusYeKxqaeM5LrarVOhvj+tPjahqqXfk9z0Va+ykUHYP3pRnFTO7nrChnD7rXlpRVXr4XI1zYgwrnW6nAU2w7DRQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR10MB3213.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(66946007)(6916009)(316002)(36756003)(66556008)(5660300002)(66476007)(508600001)(38100700002)(86362001)(6666004)(8676002)(44832011)(4326008)(8936002)(6486002)(6512007)(107886003)(52116002)(2906002)(6506007)(2616005)(83380400001)(84970400001)(186003)(1076003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: gQzr+1lgYOmw02ybN8eLp2ZT9+TxupOS7mF7V8K+XSa5S3B22if6SE1JMl0lI/azYZkDD4IqWxX1JhhaHekJu92PlNshL5M4wMrWWaIEGqYI24XQVyPIVVX03co2038byQ7E7dNxr58EC52x8kdoGcFBX/YxqR2WSGCMNoPBMPj3U10FbllosYf4ThaJNvxXQ/VNO0IOtj+NvETv/QSfkTkHgGvfMdEyJeAuQiDdjTaJdYqRe9M6gUnn5Pore/tEdhOZVm2C4nw6SLRzIkOU7o/YrfzgGQmiZo9hJYMTgt6eBafxT60T5PR3OmefcfTH2uZHrwQW47zlolttWwS249tbOiDMx1RP/nGdKuNlUpG5mSilriLxIxSSXHo29LEpndIZ7JHHA2N9Y6sFPH4v8EbyHtXWQqv31wVg6bHmIhWSrkV2FdJM1GHvKETBUUM9SiFjxCVPWtvzim4zGT754SNUTeoUWk1tzNAhEPrKJBT8s/ktNRuOI+tAmMpkyYdtCq5Pfn5frHXF7B2RfxFh9jCQP6aDqMzu7MzX7j5E2Gzg+Dw79yCsqwZ1Whc2e4lTa3mpMqfcsaQRFVPK7KNJ8Ddgd0CVTw7BZltYRBW/AMJtAtDRh6aJu8sw75LtnYpGn2vKYA160nEcGG9lNszY5hZg6Rz2XDF/ID2EocjfhvzvKrYddQF9f3zBTcx4pAvciDni0MfUE90zjG/xcqZW17UREFoNGlaVZM1x9gXmfx04vtqC1Cvy5BVGxtLyrgT9VfF3lUm9lcoua4MkHlH4kCyNiMVlpDDwhOEoKPVDF6+ngm2bRdPUHSijAIy+wD2RO0ueD2pHtSMil+WVMpFCiSc93HOG/HczuFLcJdKQZfKGPVICP3Q50vHUks23pwhU4OW555SeK6koW1F23AU1NWHBGWnxxd+UGlnu1Ukh5raS4C7CdfEQr77NnpNd4wPa9oDgZO1emzU2JZ6YKK8CAo0I6W/0y+blxsx3Gm0iwZOe4oF8n9C0XQIvVYE/JKuzIIKLlNs7QLpCZ7LCX0CwCIwYoDbicOQeH96ylsdI0wNo2QCOWRq09ZYYlprK6Pp0gbIDfC2mR9u78nKeax/n8UnrIpsuCq3O4M0xPw2PJqkEsN4qBl/c7X23KycpB67zcdoZS0S2+LpuhiYTITWw729ou+AzGlhJy3IWwaXV3CUJgSNMmPF2/cEKS/a3qaTIit8YHTSwrBGqxutWT96UFXSB8M4Edtd9B5egUIMhx+jPYv3Y/y2aQtKBcm7ufunk2tRxCryNr0g08Xamo+MMiVtpWfFfysktve7GRCzRbUG71vDKqWDSKP6IPkb0gMIg9Du5OGKT/oEGOmjTE05AjuxD7ZoWqxBMBdsSXDU9NDhHUhDP4GpIQA/yQsqWIu8WQIEQV/CpESHAPgJANJJfYVagA6V4UCjAstX//FivtKsQB2apzgJoQYaHahmubGn9y+80pj/wJx/SxRpw0Sjm/paFAQJglioP1d2M0PPi7pHF5exrvPcViMhJIsglrw2lBKPVJqPikA3qSKAcqHbmFZ+pbgaCMrX/C+eAYbmGwE+Zgd8jMImyEwhZxeaZQf9M90LF5IXKOJi8FkOhmGbJe0RPi45ytz54ECfj0eE7v0QhCRFOS0siL2Rd6YeeCqGONwUA73AUR6/mVw/g2S+adw7zxCIV3Ssq50EovLz78+iLQK0KyPyN8JKNsyW2d8O9QFEzHHupIIxj9ZGdbZn4z6rXjmlBg5z5d3eXF+ux+MSHOkoWrIVWGtbFoBDDBn9f X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 25db7d9d-dfbf-443d-46a4-08da1417d585 X-MS-Exchange-CrossTenant-AuthSource: MN2PR10MB3213.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2022 19:43:02.6837 (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: xo1+QVEfRtXNFLI7tL1p/Uoe47vItUk98gGwdhEJ7uh2WXMCh48bNDtvuDGyBhhRAdH30jca6ZYdjWriweqs1g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR1001MB2286 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.425, 18.0.850 definitions=2022-04-01_05:2022-03-30, 2022-04-01 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxlogscore=999 phishscore=0 malwarescore=0 bulkscore=0 suspectscore=0 adultscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2204010093 X-Proofpoint-ORIG-GUID: gxueA8lg2FOOVNYRs9eylRWjMdHlu-7Z X-Proofpoint-GUID: gxueA8lg2FOOVNYRs9eylRWjMdHlu-7Z X-Spam-Status: No, score=-13.7 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.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: David Faust via Gcc-patches From: David Faust Reply-To: David Faust Cc: yhs@fb.com Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" This commit adds tests for the tags, in BTF and in DWARF. gcc/teststuite/ * gcc.dg/debug/btf/btf-decltag-func.c: New test. * gcc.dg/debug/btf/btf-decltag-sou.c: Likewise. * gcc.dg/debug/btf/btf-decltag-typedef.c: Likewise. * gcc.dg/debug/btf/btf-typetag-1.c: Likewise. * gcc.dg/debug/dwarf2/annotation-1.c: Likewise. --- .../gcc.dg/debug/btf/btf-decltag-func.c | 18 ++++++++++ .../gcc.dg/debug/btf/btf-decltag-sou.c | 34 +++++++++++++++++++ .../gcc.dg/debug/btf/btf-decltag-typedef.c | 15 ++++++++ .../gcc.dg/debug/btf/btf-typetag-1.c | 20 +++++++++++ .../gcc.dg/debug/dwarf2/annotation-1.c | 29 ++++++++++++++++ 5 files changed, 116 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-typedef.c create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-typetag-1.c create mode 100644 gcc/testsuite/gcc.dg/debug/dwarf2/annotation-1.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..aa2c31aaa32 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-decltag-func.c @@ -0,0 +1,18 @@ + +/* { dg-do compile ) */ +/* { dg-options "-O0 -gbtf -dA" } */ + +/* { 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 } } */ + +#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); + } 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..be89d0d32de --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-decltag-sou.c @@ -0,0 +1,34 @@ + +/* { dg-do compile ) */ +/* { dg-options "-O0 -gbtf -dA" } */ + +/* { dg-final { scan-assembler-times "\[\t \]0x11000000\[\t \]+\[^\n\]*btt_info" 16 } } */ +/* { 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" 6 } } */ + +#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; +} __tag1 __tag2; + +struct t my_t __tag1 __tag3; + + +union u { + char one __tag1 __tag2; + short two; + int three __tag1; + long four __tag1 __tag2 __tag3; + long long five __tag2; +} __tag3; + +union u my_u __tag2; diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-decltag-typedef.c b/gcc/testsuite/gcc.dg/debug/btf/btf-decltag-typedef.c new file mode 100644 index 00000000000..75be876f949 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-decltag-typedef.c @@ -0,0 +1,15 @@ +/* { dg-do compile ) */ +/* { dg-options "-O0 -gbtf -dA" } */ + +/* { dg-final { scan-assembler-times "\[\t \]0x11000000\[\t \]+\[^\n\]*btt_info" 3 } } */ +/* { 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 s { int a; } __tag1; + +typedef struct s * sptr __tag2; + +sptr my_sptr __tag3; diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-typetag-1.c b/gcc/testsuite/gcc.dg/debug/btf/btf-typetag-1.c new file mode 100644 index 00000000000..4b05663385f --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-typetag-1.c @@ -0,0 +1,20 @@ +/* { dg-do compile ) */ +/* { dg-options "-O0 -gbtf -dA" } */ + +/* { dg-final { scan-assembler-times "\[\t \]0x12000000\[\t \]+\[^\n\]*btt_info" 4 } } */ + +#define __tag1 __attribute__((btf_type_tag("tag1"))) +#define __tag2 __attribute__((btf_type_tag("tag2"))) +#define __tag3 __attribute__((btf_type_tag("tag3"))) + +int __tag1 * x; +const int __tag2 * y; + +struct a; + +struct b +{ + struct a __tag2 __tag3 * inner_a; +}; + +struct b my_b; diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/annotation-1.c b/gcc/testsuite/gcc.dg/debug/dwarf2/annotation-1.c new file mode 100644 index 00000000000..543cf771f92 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/annotation-1.c @@ -0,0 +1,29 @@ +/* { dg-do compile } */ +/* { dg-options "-gbtf -gdwarf -dA" } */ +#define __typetag1 __attribute__((btf_type_tag("type-tag-1"))) +#define __typetag2 __attribute__((btf_type_tag("type-tag-2"))) +#define __typetag3 __attribute__((btf_type_tag("type-tag-3"))) + +#define __decltag1 __attribute__((btf_decl_tag("decl-tag-1"))) +#define __decltag2 __attribute__((btf_decl_tag("decl-tag-2"))) +#define __decltag3 __attribute__((btf_decl_tag("decl-tag-3"))) + +struct S { + int a __decltag2 __decltag3; + int b __decltag1; +} __decltag1 __decltag2; + +struct S my_S __decltag3; + +long __typetag1 __typetag2 * x; + +/* Verify that we get the expected DW_TAG_GNU_annotation DIEs for each tag. + Note: one more TAG in debug abbrev. */ +/* { dg-final { scan-assembler-times " DW_TAG_GNU_annotation" 9 } } */ +/* { dg-final { scan-assembler-times " DW_AT_name: \"btf_decl_tag\"" 6 } } */ +/* { dg-final { scan-assembler-times " DW_AT_const_value: \"decl-tag-1\"" 2 } } */ +/* { dg-final { scan-assembler-times " DW_AT_const_value: \"decl-tag-2\"" 2 } } */ +/* { dg-final { scan-assembler-times " DW_AT_const_value: \"decl-tag-3\"" 2 } } */ +/* { dg-final { scan-assembler-times " DW_AT_name: \"btf_type_tag\"" 2 } } */ +/* { dg-final { scan-assembler-times " DW_AT_const_value: \"type-tag-1\"" 1 } } */ +/* { dg-final { scan-assembler-times " DW_AT_const_value: \"type-tag-2\"" 1 } } */