From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from userp2130.oracle.com (userp2130.oracle.com [156.151.31.86]) by sourceware.org (Postfix) with ESMTPS id 2AFCC3851C3E for ; Fri, 30 Apr 2021 16:11:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 2AFCC3851C3E Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13UG5d5k174346; Fri, 30 Apr 2021 16:11:44 GMT Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by userp2130.oracle.com with ESMTP id 385aft874v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Apr 2021 16:11:43 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13UG6xPl087246; Fri, 30 Apr 2021 16:11:43 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2046.outbound.protection.outlook.com [104.47.66.46]) by aserp3030.oracle.com with ESMTP id 3874d54dpa-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Apr 2021 16:11:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hkTZjyJhLndTwA68HT07rq/8yW4DoTDd9NbO97X6AJjjLbsslAM/SmZr58494lnhhYni97gpPFP4QDm2NrSSVT+w6PD/fwYJF9IbeoqHMdy19NMIDVjFZ5gIXiq289BKKSi2w1M28RCStON+/9oWhTfutB6CvrELpVDH1nXknU0NWx+Zzx1kR7OimcFRec3wJJWr2Y+9r/D3bntE5vsuZ1L7TcdlAgB6g4/3U3Ur/wABC/ZJt0cKlpF3L7iHRZdk8ROJPQJ6qAL3MltifVbX3O+cP704z4QiUaS/5cQ5H1v6ko5HXBledmj5dt8X37K+gxCN4Za2T4vt976VBBAKaQ== 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-SenderADCheck; bh=J3EpAebmmWLD+TspBAS1jzeUO1bZ0mY251wwxhHuRhk=; b=mEooFbWJ5HJHu7OCDM+TPo1EyO+l6sy1gT6lXk/kfHt2XMNZ9gU0IruS23R4tDZR11BrP8LBQdj0idJCvZzJJd2eMHDOpTrMv+qHtSbZmMsD/b/E0zUbAQsvK7Rj8twqI1OqynNnsld5NOsAUlD578nb0qDguY92DUrMBIeZ21pjvWhTAsdvURsW30nW9XIoxEX7KH2R0Q+OvY15by7IV6DS78yENGNquPZdqJ5k+u0FLfJIRARZM6tkntldGB3seHmjHW29DIzpOJurxOir0lgMSoaYxQLb1ojYV389LoRNdDao3kD7Crh9EdrvMJL45OcF5/d+GOJq/c3jCSnNIQ== 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 DM5PR10MB2041.namprd10.prod.outlook.com (2603:10b6:3:111::16) by DM6PR10MB4059.namprd10.prod.outlook.com (2603:10b6:5:1d5::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4087.35; Fri, 30 Apr 2021 16:11:41 +0000 Received: from DM5PR10MB2041.namprd10.prod.outlook.com ([fe80::35f2:ac4c:f8c0:ee4]) by DM5PR10MB2041.namprd10.prod.outlook.com ([fe80::35f2:ac4c:f8c0:ee4%7]) with mapi id 15.20.4065.027; Fri, 30 Apr 2021 16:11:41 +0000 From: "Jose E. Marchesi" To: Richard Biener Cc: Indu Bhagat , gcc-patches@gcc.gnu.org Subject: Re: [PATCH V7 4/7] CTF/BTF debug formats References: Date: Fri, 30 Apr 2021 18:11:34 +0200 In-Reply-To: (Richard Biener's message of "Fri, 30 Apr 2021 08:17:49 +0200 (CEST)") Message-ID: <875z03kb0p.fsf@oracle.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Content-Type: text/plain X-Originating-IP: [141.143.193.79] X-ClientProxiedBy: LO3P123CA0014.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:ba::19) To DM5PR10MB2041.namprd10.prod.outlook.com (2603:10b6:3:111::16) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from termi.oracle.com (141.143.193.79) by LO3P123CA0014.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:ba::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4087.25 via Frontend Transport; Fri, 30 Apr 2021 16:11:40 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 93f47340-660b-4d81-bc11-08d90bf2a3d7 X-MS-TrafficTypeDiagnostic: DM6PR10MB4059: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: MltImH9+qz3QEy0rcEtZt151kKCi53fVw5vLNDQ8fT4zk9cZOmnMKlxfUbAFxexjVs4Sqe9IT1b7FLNj47qqKBFCINMB1BwFbms/afarxX2eYA38WD/jXevmW90onufPlm1Yo0b8DKReHGXGSjXRDoVqtdE3+dJQoDQIo0H2Q4Yw+lqwBj/PAAsGx8kjTGZpQs/BpY8JHMXGzilY4twNxyIeuOxxwWslcl1VB7FFP6nIBizII+EIuvWT4yljFbTA63En8JdsPJkDQBvYvAC1jOUTfEaD89dGzqidsz1kU2ifwyY728Lnst2ZRgmop90sC7BKHLXkiee66zmZUea/GpLN/FoNxh93j8j8MJN2lDgbktS6gQl/QXsM3nj74R4RP+ROB7U1/ciFYO2fZXTFhx+p/w5Nf5M6o5K2q3TEDuxLh3h85NPRiParPNSnQZZoHjy2FLFDBAyXC23QrOYP2k9tj7IbKD2oUyk7WOkF0QIUR9Ow0/10y7L/a1vts+vqmnJqU/E71Ze5qO18GUFcN8liu3v8OrJp5FkmGByMxR8CdxD91enn+s7YpnMz45MZXCbgsIaBFH5wyKYkpsEUCi6NAFudY4C8zyC2vd8xX4+MXslagNO2tkEL0WVfFY+Bw/uN9TT0j5rsF1ChEqq9YA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM5PR10MB2041.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(346002)(39860400002)(366004)(376002)(396003)(136003)(478600001)(6666004)(8936002)(36756003)(6486002)(86362001)(956004)(2906002)(2616005)(66946007)(316002)(4326008)(52116002)(66556008)(5660300002)(6916009)(38350700002)(26005)(7696005)(38100700002)(83380400001)(8676002)(16526019)(186003)(66476007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?QhceHZTVzb8Yev0ywtAZKanPW1Zct1Nj9NEST1x5x9dvBE1facVvRU7hicaf?= =?us-ascii?Q?73kIVtaUOW6Xi2nKsr7ZyssRdLE5Xw5AnBadbmrO4OSToaJxkngCYEdCsHOU?= =?us-ascii?Q?9ukqW7Tz/4X1bDGspfWAgbmnzT8LlrvB5jqighmRJ4QHVgw+wJJ//Z/rkNkM?= =?us-ascii?Q?mYeCCJbrgpPcrvz9ySG4FMDXfEXYONCBFmXmUzK1jwCb0Z5c9CwMOSwiFpXd?= =?us-ascii?Q?7OpiDI9ejTW6KB9mvEhlRKmKVQvQVYoEJ4LChXqyH037MKNpevVJaFGxNq5j?= =?us-ascii?Q?8zWW7sFntY3cY8T5O1tZBKpZ0uVuI+o/eTtKQ6j8t6vuls0vz2lXmGuWSOGN?= =?us-ascii?Q?TUb7yTBSg8Acd/dfaC5ZhGjD7/6wJlOKrSi/Q8eDlZXH0Q21hlTi4f1xg8Yy?= =?us-ascii?Q?asvkaRQaTM4V7mtqGtrdjkAbAniVtAKZylGWnSoFMU2DfJa2Mqel2cHFKRoH?= =?us-ascii?Q?y3iQeHLbgq88mPKPTzoZBBeEJ45QXfEeRaJ+RE/qPuG3/8XlpDv5hLtFReUc?= =?us-ascii?Q?qFI59KlvVdX0LqSQxPGL47+UMzyQARdvjfxGMODsaEAdrpXh7UUljabzAyw9?= =?us-ascii?Q?i48liTG/L1WIKLmYeZ3FCcpFxxSTftOLfBFH7FO/5LsTRJdl8GQQYaFUqFyM?= =?us-ascii?Q?r9nMzWKfE7c/HcMu+04MlL/Thyu/a2HYD3a2c8Nx+5e7Owp7yLBd1OKV1y3P?= =?us-ascii?Q?W8BinRL2iNZZ7cOQfvyNQMJ8Tm7S8gM79w7sb2jMaFOzx6mcsQZExudVGDu1?= =?us-ascii?Q?1Wu+/L7Z47tNHnGyjwae85kyb/ndY9c/R5TyHbhXKx0ElFWXq4HOhLLhXxUm?= =?us-ascii?Q?Qg7l872LKC15T3IEX5lqSANlISsV5va1UPGy0m1wIe8fQ346pXoEbteA36/w?= =?us-ascii?Q?zCSYJCNfAEuohMvAaS4nJPG3qmCR0/efRSqKMOOeaa3tTzCDKd713NZPfaHo?= =?us-ascii?Q?r1D5dD/ayYgUfxfLPRann0QH03HAWYIfaJmVTCoEXIgy9+j4q+FaeshfxrPj?= =?us-ascii?Q?KphvQDeQ0nGvBhjeRhUsxsAn2nJ2RqYdTXGg5CemHBOLESpS1i7DkLN4Ix6M?= =?us-ascii?Q?6gIpoWuYnZ5+Puer2GwDJPJKG8BY2lynHWLi93TETanptKcOkz2KG21aD/Uc?= =?us-ascii?Q?6anTEO7Y5CqIz6uBexxn6Q2sAMdsJCJvfX41+o+I7Bbli/2sIBNuRLet2MMK?= =?us-ascii?Q?KnkfgBcbhTrIBv4ZjlTez9SOMQrJaPuYYfHv5SC/H+GrwhXxq9oPNPhg5dKS?= =?us-ascii?Q?yohG7FtTG8QNEGqM5P5owR/yz++SmgINCg7HvASDaXSWrvsMdf+kuCgtdn9Y?= =?us-ascii?Q?9BDSZpBiCpggXqlnNhSKOz0b?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 93f47340-660b-4d81-bc11-08d90bf2a3d7 X-MS-Exchange-CrossTenant-AuthSource: DM5PR10MB2041.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Apr 2021 16:11:41.1720 (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: 4CO1V9u7j1O81mpNKnBBq7mRZ1PTp+scB+BYQFqtj58LthAmLPFBUtJd/KRVKxCdFxgMllgY0UfrljzjXWkURMPeCiCBEUlYh3/w2sxR32c= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR10MB4059 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9970 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 spamscore=0 adultscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 malwarescore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104300108 X-Proofpoint-GUID: K_0epueEU95bQVsQM9qppM5B38Tslhth X-Proofpoint-ORIG-GUID: K_0epueEU95bQVsQM9qppM5B38Tslhth X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9970 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 impostorscore=0 lowpriorityscore=0 mlxlogscore=999 malwarescore=0 phishscore=0 priorityscore=1501 clxscore=1015 spamscore=0 bulkscore=0 suspectscore=0 adultscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104300108 X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, MSGID_FROM_MTA_HEADER, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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-List-Received-Date: Fri, 30 Apr 2021 16:11:46 -0000 >> For a moment, for the sake of this question, if we establish that CTF/BTF >> generation always feeds off DWARF DIEs (so there is no need to access >> type/decl tree nodes), what will it take to keep LTO support while keeping >> ctf_debug_finalize in dwarf2out_finish ? > > I don't think it's possible without major surgery. Now, it looks like > you want to emit .ctf at the LTO compile stage and BTF at the LTRANS > stage. Note you do not have access to the CTF data produced at the > LTRANS stage. What DWARF has access to is pointers (symbol name + offset) > to the early DWARF generated DIEs for GCCs tree decls from what it > adds DW_AT_abstract_origin references and then amending those entities > with furthr DWARF attributes. > > Now, the "major surgery" could for example entail streaming the CTF > data you produce from compile through WPA to the LTRANS stage. Or > alternatively simply reading it from the compile time produced objects > by means of the DWARF DIE references. I don't know what kind of (if any) > references you need to produce from BTF to the CTF data (I suppose they > might share indexes into a same symbol table...). I am thinking, given that we have both "early DWARF" and "late DWARF", we may want to have three init/fini hooks for debug formats instead of two: DEBUG_FORMAT_initialize (called in dwarf2out_early_finish) [... traverse early DWARF (DEBUG_FORMAT_do_die) ...] DEBUG_FORMAT_early_finish (called in dwarf2out_early_finish) DEBUG_FORMAT_finish (called in dwarf2out_finish) Note that CTF and BTF share the ctfc internal data structure (which is built from traversing the early DWARF) but these are otherwise distinct debug formats: CTF can be completely emitted in ctf_early_finish, whereas BTF needs additional information that is only available in ctf_finish.)