From patchwork Thu May 30 21:32:15 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Faust X-Patchwork-Id: 1941831 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4VqzyF3zn6z20QB for ; Fri, 31 May 2024 07:33:23 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 45ED8386547E for ; Thu, 30 May 2024 21:33:21 +0000 (GMT) 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 D933B3858C50 for ; Thu, 30 May 2024 21:32:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D933B3858C50 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=oracle.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=oracle.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org D933B3858C50 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1717104778; cv=pass; b=UVNo24s6jRaXr25U9aw5WRZXDNGoLFXe2xnQO3YNqvMv9THpObtGK4SxmdR5Q3cVG3pxN3leTxWe8aFuzTzlm4ISIIcv24nz6/kpHqJxuYt8UaVSnZDhKPueDlebUFpAOdxtuv7Mb3kpn8gjkTsxG8dLyRX6D/Wkd/3uoamGUHg= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1717104778; c=relaxed/simple; bh=qU75ASRS5gCshirrvYLZ5kCBEbJDFi2k/7YOpNjgK3Q=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=WVCoP/46pJ4hKDiIKd1pTvu175QO20ISWlMAupgpEBRKlZIJ2djbUURrKbEK/TqpKqKjWbkx6iNiN6uCgfMMZSKrFZqZY6llMYolOgq9cUXp6UE29jNR56lrGlSeTkQ7nUNzyNNw1MN1ceXXJr/0wCsbPI1Zem+oczTIzbll+Z0= ARC-Authentication-Results: i=2; server2.sourceware.org Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 44UFc5iI001875 for ; Thu, 30 May 2024 21:32:56 GMT DKIM-Signature: =?UTF-8?Q?v=3D1; _a=3Drsa-sha256; _c=3Drelaxed/relaxed; _d=3Doracle.com; _h?= =?utf-8?q?=3Dcc=3Acontent-transfer-encoding=3Acontent?= =?utf-8?q?-type=3Adate=3Afrom=3Amessage-id=3Amime-version=3Asubject=3Ato=3B?= =?utf-8?q?_s=3Dcorp-2023-11-20=3B_bh=3Dd23O+EWpPvJ8PLQDEYnhqW6rs9rDDGNNJ/Qc?= =?utf-8?q?lSJVh9Y=3D=3B_b=3DdzeFdurn9zpsTRLpyD3RnzYEKNGIWHPfSdEUnsLXyqIZW/m?= =?utf-8?q?Wb4t/js+RN73JkMos8sdB_6tZD2aVqanYHtijgI/TFGQ5xGeGRPKfpB5004eQaxgr?= =?utf-8?q?ud/z+OzyfktMmgAypZCBgyoDH_/+i3hVlFcqADIpsr3NALdhPwyJHHd+gAmMPQ31S?= =?utf-8?q?gwUVN3u2Q2cOhyaL1mGzD9ZVp9Gs7_ny5q0ZUVbaFxAVUhtePDPzdkQHnhqJ1GWmK?= =?utf-8?q?5pEmLynWY3FWqNX2xPt5DhlPEfBS95lYd_qLYgtUJzZpAaR9V73eVA8DJon1tSiGl?= =?utf-8?q?LAafml8DjMTfS4kTyYYEA5YtS1rWpaoOi8E4E_GQ=3D=3D_?= Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3yb8fcj12a-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 30 May 2024 21:32:55 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 44UJai84024157 for ; Thu, 30 May 2024 21:32:55 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2169.outbound.protection.outlook.com [104.47.55.169]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3yc52eee6j-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 30 May 2024 21:32:55 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jElFhb1MpYjW0+OnS0E1yd/rkCX6nkUMKtkPSabJduSoidzsmCgke7PMiX3AXynmKxukZL4E2bWG4JCDgLXPuOAc3OyTJiPBI49uECSEQE4ZhP5+/yY3s2Va+CuYftAyKMZwlEYfo/mqtnOUuxbtmUDQ6KZG1DkhtqEyzQuppOHMW7bP8waCaqtH1giPtpT4M8r3YpketMljA1te1IWBAzGXeaDIZLLP+CH7VeVkrBOzQcg4lyd2/jv4ouqI525zQy/RouYRCX/HxYG5gU06eOCBhkmDdsG+woSwSPm0OHiAb0GzrkgKKI6app5DqaoO5EJUi4p880LpjkoDgrBXBg== 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=d23O+EWpPvJ8PLQDEYnhqW6rs9rDDGNNJ/QclSJVh9Y=; b=QVzknhxfCmnYJkjAv0hIJrIZVGte7/VcaDeiVTC98rEQCS4fFcGBDaT8KD9Z88HCmneBbR3uUeSQM5PbaRIANfWNTnf0Gn+dh6lIfoHgpLPEZon3PRsRcorUCRgRYIW1aIX2xY5kiv+6rTCQcKZEbFHK4d+FYrUjyV0nlVxu8q8BrlZ38COcDFZetWEET3s6wfMxmeenD8fVIpkw9oK1bSlBLg5m7h3jhVBsH7GjDtDvJOz0NdfTqWohocfUq5ZPGxvMQhnVezvE9WQMNsxkF7tNGPCh5U0+9geqgiHuCVHgVvybUxCMlB+S7rvQ+OAQpXiC4vhN4gfpnjgFBa+N9g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=d23O+EWpPvJ8PLQDEYnhqW6rs9rDDGNNJ/QclSJVh9Y=; b=ghWVTIn3RO3oakUUhO/8HXUQljatd6cvYWUAGhpTKkk8xU3/wdF6BbNTWvMtbbSFcXPxA4NMU5btU0cZSYY91WuETCURyUZ2+cV4YdT9pXad6+Lz6iieDT1fv9lrWtxv3U4VHoxsP07MhkTzjpfL0gvr/z0Rxf/fbVpVMplNhYY= Received: from CH3PR10MB7958.namprd10.prod.outlook.com (2603:10b6:610:1c9::10) by IA0PR10MB6745.namprd10.prod.outlook.com (2603:10b6:208:43f::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7611.35; Thu, 30 May 2024 21:32:53 +0000 Received: from CH3PR10MB7958.namprd10.prod.outlook.com ([fe80::dbde:7e3c:e5de:811e]) by CH3PR10MB7958.namprd10.prod.outlook.com ([fe80::dbde:7e3c:e5de:811e%4]) with mapi id 15.20.7611.030; Thu, 30 May 2024 21:32:53 +0000 From: David Faust To: gcc-patches@gcc.gnu.org Cc: indu.bhagat@oracle.com, jose.marchesi@oracle.com, cupertino.miranda@oracle.com Subject: [PATCH v3 0/6] btf: refactor and add pruning option Date: Thu, 30 May 2024 14:32:15 -0700 Message-ID: <20240530213222.440435-1-david.faust@oracle.com> X-Mailer: git-send-email 2.43.0 X-ClientProxiedBy: MW3PR06CA0029.namprd06.prod.outlook.com (2603:10b6:303:2a::34) To CH3PR10MB7958.namprd10.prod.outlook.com (2603:10b6:610:1c9::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH3PR10MB7958:EE_|IA0PR10MB6745:EE_ X-MS-Office365-Filtering-Correlation-Id: bfea1ace-a505-4d66-4a53-08dc80f01004 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230031|376005|366007|1800799015; X-Microsoft-Antispam-Message-Info: DxRzpHlU27P4BMZ+SVCiclWe6YLb3CtBI68O8t8maJkYVc3z59z9z9hRfEkN/GckydKonZhc4JKVqp6zW24tKCCCpCanvK2ZB4Op1tRQT+MVIXRTdjQ2yKzopWtTOW2t2OmdICpFwwZU6bpyakG674/9BCLlvH2eOPnkxvSB0IL0WrZ6O39FQ2/SJPWHrGV3qYm12jdHXOPDE8tWNp97dtJiFfi+bf1kgQcgqN1dvselzWRrBWMxZmR4VazB60Nb0gPWT+EKfSuhOqSO2Avsf4SAnuA13vD7o4h/paBg+uMtSBr11gBejCMiDARPkFK3bsEOewazEw/872wrGGkjKDBcH9d7lm8YgOL7aQJnlAdt1GSrsS1Skvp+LuDS4EdFVDvSIEbvq7Pw9NvtytunGHiiQg1zFKeU3d/jK/IT9GoPmRF3/h4As9dz2KEQBFGRY80M5clWZYKuetKpEzkd8gyHxw+aHWmlTuICXJf/70BUYtLCli7e0z+mLc4vFeCz48u6lv1VXqWKshChlFHa9wPFn8JpbKdzSwSiz0UrYKHRauBWo+NziudbRWKU2O6oG7uFAejlBVw8WeKkTMU0t6dpVMMlAn3OxOd+Q1MRzdsFJ0EcNixBOFEKTmEWgQTLUJFKFxDYQIScPFI26Q9S9tCuDPSAn5CyyLBZHsmgYejqkXe9aQMzgO6kpBjwdwypeA051Pc80SmlHVwdgHFEMOLTJuMkWXzWk31Ri4uN0dBIYRgDJ5X1OsnbFomBzc6b+5QTmfszbf5zAWkLlkrex1IsZnzpA2wFqLvUjdkgi1QtvB9VHcOxcGdE5jTgEX/UYQuOkVsZSreloI2FOsgWD7tlnueQsSOvXp+u1YIrC0tEqb0Vv4/Y2JlKgfQx3YSFkCKx8tsC7gKECvpT98REIvYYWs1ev+9Qcjzo2imiBadraTQfSCa69D8VFPB+wbnXVV9thX40oisH6xNLaHiKx3Huy9lV07u7dVzq5oHIe5WlI17oPWjfg5+AWGNNvYO+DRyTUJ+LO0yvxGOwGLf3n6kpAgqqki22P9Pf0sAQEfRbx0+GMUDmNrYya3QNY/RaBSYTzlwWy1TJNX7OqNSneHYB0swjURgRm2w2552Swx2B0U7iMs1B/Rh4Yfcv4XH1Qw8EHe6/wXp/cNtd0Wu5o+j5RWcMtwkofVwbnBA8gtsZZLszQnzIr2497CMVFKNd0qRLazwyxa9TvGSKrJnHNVTJZHrHkp8d52JTd7vsY4Y= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH3PR10MB7958.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(376005)(366007)(1800799015); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: nr67lKUfo1elwxMi9EUvKaroifRr7i21TM0Bq/EGTuTQ9yGeKuCwvl+q9DKISzVSMbbut2Nv2kb+Fbk+v5ZsOc6AmfCPXNmHvPT4LD6+EhYhLaZ9kPgFnf/q2Y8EIgiMqXFZdiRPlXOcUDMudR3jdswyKJJtiFtCa8dJyTgfaAy4CCNGTY1Hzlt4HzMGGXfVv2e+CcMaPLEtVASwuh2nYymEz6ZCUMf3j9jwyODG3W1ZrC5eMkpQ6Ks1rZ/6UPY4kefAzUEkaaL+5K+NpG8Mckw2fCgzWx7kHxPuJbjIC8TSGLmOwfKwNlBOtuBjzUdAXOgS8Xfcid/On2gXz21j7XZJRc+zSMMRC9nHof6O3Y0V0w1XK6r1q3VmL7HT2bNJnKlP2DWTqvAAeoHWQpHHaxuVOiGSO2K/CGLRrxtMGG96D4XiBFVdofxRy/J6ddjpY6kKXb77x481g+lAtZ+7TLTziUIKp71nvQcDPb1ywfVOUMsSpmZlnD06jlPIIP/XQyNMNDUkihrxevZwjpPDm8kpOFe0YJVXN33HmSxAsiYXcdwaw8vgobOk084iAlAZb1kRJPuSRuv/hwrbVU8VIMueEc4Zju6HDQEw/Pk9gyCMF6qX8cTcnN1BAZR4g1g5g8Lo17IIDczoDUK2Qlpef9Nf9SjuBlX8CaeLrYDOjMzPK9SGXJb47HITES3Zj+5IhtXJ5BReYV4BKvuRv34PgM8+qVljPYOkqRyaGyVaqHfGuvpHnyKubfmyojY36TGcACB6ajui9ZeI+hrFpfHRV6vnCYBwp93kJj5Qh6Ca4lzW/BxKt3GBWtWwLUUhs5OwnacjvfPFFjofMCz0LXQzmk30QT9PG9MvX4hKgVfo6eCcrC5rK4GxLaIgJNqE4HMXzjD5RNJRehJsF1ldHhYWjewoNCCt65PfNHMc0UDoOT99ldV1oiTaZVG72AZtnA7MAf7l2g7sGmNOp1FncHCWUeLD/PJJ6XytP2ljjsQiy0z8Wf6rjuB606PyZaOeO0++99oYDwJUTzcL/vFg3RPWHBBoHGDm6J/LmiOEo6do9mH8qbhUKlEtv1syWn4RItGUohio9JjW4w64dp2RbjXEUnpxtAQOFigwMYerByC8J2BjG7epZM4w1R58EvPQ3k6ibDyKeru+xEhrX26OkVj7RLgznqDBFyJqJ2Rt9FyLCr8xgDUstqIOL1B06UgTYAFKXzXCLrSzGiRtKrLKipcSDTP3p9NZTNUAkkPgBYCPopZclvOkGes0pUwKmtilhUVqWsiqGm9K8s4NfN0Bdpgl7Xh2shJFGxcpPTxM/3btenFrK3G5ZfKFQewXoVo78jvyjkqdymd8iyrodFXDuxrRaQmLh0BTTGckG0gHjvNyFaAC5kSeCyyBiLTIKL8lUIQxsxUUPHf0qVKbsnaM7flMJ4UHstJBrhth5SWDN38lijGIh1K+yESPt/DqyA5HD4L3hgyyls8xCH7aB6UyJCkzz86ftVjLJsrqnBxJMNxklN0e29miP9NcySmoSSb2WxN44VyiGDLppDdOTW53808DQl2XUrME99yzUYeDpVVf0uFNj+ofClY8sdFk/YGdrox4KPBWFdcEh3ZbdcZ3QruiuQ== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: FyndQC6d2avsOrZaaVaepSC0NFOFrKLz4UnsFibudpWDGINybm3PzQ0mqwsDGlQG7ZUrVnq0jvcv/6x2v9QtNAZd+wwXHlg05jGyfQZllTZ84xUmoIQLTbGwgTFVOf6hmlfhaHlaFNzvTCAkqCU1VcT1mQo/2DP9siSp7V62dB4DNIt8VIWXDgsHiRPP6jCrTgp1zlTj3+Sh4hcuX4qEluaJ+n/L3XfLPsZUXY1KzwKRUpdIddYbcsgP7di7WSGrHWfjq1soVHFe7U2iKojQi/zmluhMTPkhli4lsHoAjezgYN5X+O0QwyM5iRn1m1LV0n+LJxz9eGrS4KCdx/IiYqqp4CNkmTA2yDIMpNME1+vhjxfSj6mwNNwUsyfs9BjvE7/pb0pFrkAjgmb9+Rmd+jkWM9yznlM5NrHcZjXKyc0AB+NE3Dy5X+HJiI/qLad3HgRlg2Oi5xtVGgxopOQGn3ol33zd6EEIZYybJZ1ztCAz33lG1QgjW6ElLhYcUzhqMv+G7TFSmhNWMpQHNwuYa2Gy33sKKlMB16lo/iP1fwMxxoMVgCk8lXSO9z+OzjKoj3mfrgy8zQpY/qa46yHHXL/yqAowFj9Rm0oCc1x2Sto= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: bfea1ace-a505-4d66-4a53-08dc80f01004 X-MS-Exchange-CrossTenant-AuthSource: CH3PR10MB7958.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 May 2024 21:32:52.9890 (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: xVmaAZWsDU3xcYcblxXhLOEa+VSlxVaRi7UJuysG/4R/fAeID8XVsTm0/Fah+VQ+SGcTCEWCdhZHRHpvpUyGRA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR10MB6745 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.650,FMLib:17.12.28.16 definitions=2024-05-30_17,2024-05-30_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 malwarescore=0 mlxscore=0 mlxlogscore=959 phishscore=0 spamscore=0 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2405010000 definitions=main-2405300161 X-Proofpoint-GUID: N21WoKgzI5SKPICB47fvQFKMff6p0Esy X-Proofpoint-ORIG-GUID: N21WoKgzI5SKPICB47fvQFKMff6p0Esy X-Spam-Status: No, score=-5.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, KAM_DMARC_QUARANTINE, KAM_SHORT, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org [v2: https://gcc.gnu.org/pipermail/gcc-patches/2024-May/650482.html Changes from v2: - Handle -flto when generating BTF (in patch 1). For LTO builds, BTF is emitted at early_finish as before. For non-LTO builds, BTF will be emitted at (late) finish for all targets. - Move the option parsing change to allow -gbtf and -gctf together to the end of the series. This patch is relatively separate from the other changes, and only depends upon patch 1. - Include Indu's various comments and suggestions throughout the series. - Fix a few GNU style issues with indentation and long lines. - Fix the special handling for .maps section variables in BTF in patch 4. Previously the type marking was too aggressive, and undid nearly all the pruning in some kernel selftests. In one test this fix reduced the emitted BTF from over 6000 types to about 200 types, very similar to clang's output for the same test. ] This patch series signficantly refactors the BTF generation in gcc, making it simpler and easier to understand, extend and maintain. It also introduces an optional algorithm to "prune" BTF information before emission. This pruning is meant to be used for BPF programs, to alleviate the massive bloating of BTF information caused by including Linux kernel internal headers. The pruning is designed to be compatible with the unconditional pruning performed by the LLVM BPF backend when generating BTF information. While the changes are fairly significant, there is no actual change in emitted BTF information (unless pruning is enabled), other than bug fixes and small additions to the assembler debug comments. Patch 1 restructures the emission of CTF and BTF information, with the result that CTF is always completely generated and emitted before any BTF-related procedures are run. BTF emission is moved to late finish for all targets, except when building with -flto. Patch 2 changes the data structures shared by CTF and BTF to use pointers rather than type IDs for all inter-type references. This change is completely transparent to both CTF and BTF. Patch 3 heavily refactors btfout.cc to take advantage of the prior changes and significantly simplify the BTF implementation. The changes are nearly transparent, however some small but important improvements are also made possible by the refactor, such as fixing PR113566 for non-LTO builds. Patch 4 adds a new option to perform pruning of the BTF information before emission. This is intended to be used for BPF programs which often include kernel headers, and in many cases reduces the size of the resulting BTF information by a factor of 10. Patch 5 makes BTF pruning work with BPF CO-RE, and enables the pruning by default in the BPF backend. Patch 6 takes advantage of the prior changes, and removes the restriction on generating both CTF and BTF in the same compiler run, allowing for any combinaion of -gdwarf, -gctf and -gbtf. Tested on x86_64-linux-gnu, and on x86_64-linux-gnu host for bpf-unknown-none target. Also tested by compiling and runninng Linux kernel BPF selftests. No known regressions. David Faust (6): ctf, btf: restructure CTF/BTF emission ctf: use pointers instead of IDs internally btf: refactor and simplify implementation btf: add -fprune-btf option bpf,btf: enable BTF pruning by default for BPF opts: allow any combination of DWARF, CTF, BTF gcc/btfout.cc | 1613 +++++++++-------- gcc/common.opt | 4 + gcc/config/bpf/bpf.cc | 5 + gcc/config/bpf/btfext-out.cc | 14 +- gcc/config/bpf/core-builtins.cc | 74 +- gcc/ctfc.cc | 141 +- gcc/ctfc.h | 113 +- gcc/ctfout.cc | 22 +- gcc/doc/invoke.texi | 23 + gcc/dwarf2ctf.cc | 311 ++-- gcc/dwarf2ctf.h | 2 +- gcc/dwarf2out.cc | 4 +- gcc/opts.cc | 20 +- gcc/testsuite/gcc.dg/debug/btf/btf-prune-1.c | 25 + gcc/testsuite/gcc.dg/debug/btf/btf-prune-2.c | 33 + gcc/testsuite/gcc.dg/debug/btf/btf-prune-3.c | 35 + .../gcc.dg/debug/btf/btf-prune-maps.c | 20 + .../gcc.dg/debug/btf/btf-variables-5.c | 6 +- include/btf.h | 5 + 19 files changed, 1420 insertions(+), 1050 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-prune-1.c create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-prune-2.c create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-prune-3.c create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-prune-maps.c