From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by sourceware.org (Postfix) with ESMTPS id 779193857815 for ; Tue, 17 Aug 2021 17:26:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 779193857815 Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 17HHGvHX017628; Tue, 17 Aug 2021 17:26:22 GMT Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by mx0b-00069f02.pphosted.com with ESMTP id 3agdnf0ruc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Aug 2021 17:26:22 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 17HHF2in090443; Tue, 17 Aug 2021 17:26:20 GMT Received: from nam04-mw2-obe.outbound.protection.outlook.com (mail-mw2nam08lp2176.outbound.protection.outlook.com [104.47.73.176]) by userp3030.oracle.com with ESMTP id 3ae2y0hs1d-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Aug 2021 17:26:20 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lWIP2yheReC31BUigmLadWTtVnKnru1z9SiI5zGVD0sH58j2+ng/3yHOc1vx10rj5V8ZwycKQDIaFaf5YUEhJtmq4rdBr4YUvlWAhU7Z7vbKbEvdA3HeWeDfU1Dzz4YczttSfmaVnjQlspSl7chTeGZWjJSgCTPnv0SyQ2kVeBblwm5nXnI/rPy6pJ4RJnuBw5LmUq0XfugQ6XrrvsolhkX2015+9gB9AjVnXlKDzBaldlLN2yejh2Qq9qqKYh10MNuJ1VCZx31Lnme8TYNSqQUx7ba6dC7Iqp3Ee9g7sIwi24Tzhgzgrt5j9QqyovcdnLl66/ahSkZUP7PWdOW+Xg== 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=xayxJb5CcJzwRvlefkPy1zla8FF7nL6wl2S9/xvHFmI=; b=ofFNQj7f1/zF6HjbDVCC60OfheA2I++8Lj5xJzFzgpBoD0Z5F9422XAszibAuntbkKpqLuLV+lDdrveqtc/0S03MbVG68l9XPxtBSTwhgBx1FsAcKYM96/GYhdOtDDF2aMv0BR2Au1alf4UaurUb5O6SBcxQ5hluVX1FgvNtu6n4oufb7JyrYGBxy+7SKRLAN/qj9gtP7ThcM8XsdGKebmfIbk6T40pvaNfTEFUxycDsuoUzTLBrlM6784FGF1F8/sL3J0zzAccrgFnVYD9+I7ZMdzdrZmTJ2lhAnvHaAzy1O+9uaOWesGalQrNnnNiLFqC/kEh/j/B4/rVq4nl9gw== 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 MWHPR1001MB2158.namprd10.prod.outlook.com (2603:10b6:301:2d::17) by CO1PR10MB4578.namprd10.prod.outlook.com (2603:10b6:303:9e::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4415.14; Tue, 17 Aug 2021 17:26:17 +0000 Received: from MWHPR1001MB2158.namprd10.prod.outlook.com ([fe80::c9ba:5127:fa3f:45cb]) by MWHPR1001MB2158.namprd10.prod.outlook.com ([fe80::c9ba:5127:fa3f:45cb%4]) with mapi id 15.20.4415.024; Tue, 17 Aug 2021 17:26:17 +0000 Subject: Re: [PATCH, V2 2/3] targhooks: New target hook for CTF/BTF debug info emission To: Richard Biener Cc: GCC Patches , David Faust References: <1628124628-28706-1-git-send-email-indu.bhagat@oracle.com> <1628124628-28706-3-git-send-email-indu.bhagat@oracle.com> <85d5d4ff-a65d-03ab-d888-493fbd7f451b@oracle.com> From: Indu Bhagat Message-ID: Date: Tue, 17 Aug 2021 10:26:11 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.1 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-ClientProxiedBy: SJ0PR13CA0221.namprd13.prod.outlook.com (2603:10b6:a03:2c1::16) To MWHPR1001MB2158.namprd10.prod.outlook.com (2603:10b6:301:2d::17) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [IPv6:2606:b400:2001:93:8000::ba0] (2606:b400:8004:44::11) by SJ0PR13CA0221.namprd13.prod.outlook.com (2603:10b6:a03:2c1::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.11 via Frontend Transport; Tue, 17 Aug 2021 17:26:15 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: acc6d08f-6fea-4540-fb93-08d961a41ea7 X-MS-TrafficTypeDiagnostic: CO1PR10MB4578: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4303; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3axvZt+UANX1r7IUqX5QRWtsZnqezSXVi8uTozJa297ZTUbfmolg+iwHQ7/FxuLimNKH1WHPKnWkMkTi38WxrIN5PbnMNguB4vw4VJ4sBdJKi1WyaTDsKwk/D0EPNN7DHSLVweb2/ZQOx2VFZpg0ubUkduU9oyLfX2b53sQvW3ZLw4F9dphSEPRjFw7yh1aTvl0+F6waRqa/Kxxk83MArM5C5SNxrClu0ZvgTP+Svy3S6Yhcez+v6VqJwT7/KLU4LITMrqBwQG3flKcdVxOFN2d7mGJc39GD57NHTtRJyZYDw+hQ88dU2CiNbiYptp+CBBXKrGyRY7AzDE8HhwM5NRdIoGNBlUk7igwcNwm2uOmaoze/kZloeq8Hoi8F7AjaKBjcY+t1B8/wYzPrzfBryD7r6TtevURYj/P29Jen/eLXQJhMwQeGUzK52lwjZGILp8sA4459YA2ZVgj/lpO8wzJ1YJ9lUu0oxLR0Co+WvLmp9xwiiuTqnKPIRwNJqVsNZVEhG+iqSVfL2jE7bUDRP7om8PmyANkK+6yOa9mL0/tsZqALnQbV6Jxr9c7A5ehZzk/G21a/OwfYp/gsxzveHXztt6RtbdTM0ZCn8HaN3qmts5KpwvBBkab5EBgvLjA3iJd5njk/NRUlpB7h8SpWqkp5DZl0xX9ZLFysNBdSi5mQKj6zEh1wpl4J10g9NCV3TrXDdlFviOz3C0I4YxOJmbqRyVbBCMbkS7qEVngVXx0= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MWHPR1001MB2158.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(346002)(396003)(376002)(366004)(136003)(39860400002)(66556008)(31686004)(83380400001)(478600001)(53546011)(6486002)(86362001)(44832011)(186003)(8936002)(6916009)(4326008)(5660300002)(2906002)(31696002)(6666004)(66476007)(107886003)(38100700002)(36756003)(54906003)(316002)(2616005)(8676002)(66946007)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?c0xiVnQyV3RBaVpYWU1HSXVZejlyUHpMUVN6cVh0eDd5aHRzeWRvZm5kd0Mr?= =?utf-8?B?NWJuS1l0UEJWYVQ2ZUJiRHp3YTNha1lPaUpIOHJVZmFucFp1SEhOMnovTDgr?= =?utf-8?B?bmxkYk1IWll6RGRGV2hmVVpUVDg3YVdVQXpBR05WUXZFVHlJemt1YVR3WEhs?= =?utf-8?B?a09XWHpGM1ViaUtnM3BZUVdyN1hFUUtFWllMamFkRnhxSFl6VjZBOTdkcWJ1?= =?utf-8?B?Z2ozZ21nWUpLZnpGUFQxY3NlS0VKdjg2a0JURHJyUkVwaTdSeXBIMHNYVGhh?= =?utf-8?B?YTEwMkZHVE1GalZnSlU1QkovdFJ0WHBOL1VQNWVnelQyaStyY1ozeXMrWVR2?= =?utf-8?B?bFh1QlVQWDdudW9nQXc0ZlViNFFWTzZwVWdPT2tuTTlLa1QvMUExZWhzVU9V?= =?utf-8?B?RTBKa2d1dmZyOGRMMERsaW1iMGZRM0NTSnBOd1QrVG5DcUZzQkJ5Wmx6SFRp?= =?utf-8?B?OHF2Sy9lOGZaQWNLZUpDanQzWmdXRnpReUFjK2Nxci8rVnBiazJzN0ROcVFO?= =?utf-8?B?WmZoK2hjb0FIRnJlZGV0MVRNdEs1TTRSM1AvK1RWT0JOYUI3ZTdLNmVJYlFu?= =?utf-8?B?Um4vWUppcWx0YkI0NHBWcytRWXBPU1RiTDcvL3ZkQUtpdlRacGdZU0VNaDQv?= =?utf-8?B?UTJMcXJFNlVxemZwdXF6MTdoY0dLWkgxR1ZrdXY3MTQ3T2JtK0p6cCs3RmRL?= =?utf-8?B?V1QxelhXMkV3QTFuQW1HOXVuQldETWF5SlJud3M4OVVCYkJxdjBKTUJiajdz?= =?utf-8?B?aGFTUktyQTZvd1g0eXluUnkzK0k4Vi9wM0w5aWFFZFJUaDFNa2JHV2t4bzdZ?= =?utf-8?B?Z2Fpb3liaVZHYTZkbEJsR2JCVU5QQXl4T0lXaGtDZzVuUEpFSkFSbVVIRmI1?= =?utf-8?B?Z1NUVEpLZmNrZkczMkpVaE5HRFFsd082NDNRUTRPc3NJUnJuZ3I5UG9yZTl6?= =?utf-8?B?bDNFQ2ZsRExMV2wxdGFYYjVhRFZ4azFKNTVPTm9rQWx2R2JHYm5DaWo2dFdC?= =?utf-8?B?Qy93ZHIrQmNEaVlVblZ6UEh3cDVtQ1RvRGd3SFBUaC96cWhOOEY0bk9uaTlq?= =?utf-8?B?SWhEaEc3WWtXZkh2QVJXaUtNdnByOWZUdER5ZHdnUkhqVklKYmRTVElnU2l0?= =?utf-8?B?c0krSm1xRU9nMkFqK29oVHV2cXN2anU1Nmt6K2F2ZGQxTm5CblBzT09RU2hm?= =?utf-8?B?bFc4SlNiRVJ6QUliT3FpOTVYVUFSUk12QWc1SjJqWWZFL2dMSVh5U1NaZjBX?= =?utf-8?B?Sk1IOVNDN3ZPV1F4a25OMG9jY0ZaMVU4MmF6NWZWNXp5M1o5bnZPZzlMUHBE?= =?utf-8?B?UjlUZWprbDk4UjM1VmJBcldOb2ZvOWpkWVRxbEF2VUFuWHZzYitOTE5pMUVi?= =?utf-8?B?aXF6TUFTUkVZSmRHU1AwbG14NlEzSi83eG1kREFFUEhyQVNrNk1WU21VSFc3?= =?utf-8?B?SmkrTk5UUFZBdHdYZUIyN01VVnA1MGJVYW5EOWgxakp4emxJYmxlUTdhbmN6?= =?utf-8?B?TDZTcmVIZjV0c0U1MmhqZno2WHMxYTdzbFRPZVRhanBqc0xIZm0zS2xuL0hj?= =?utf-8?B?N3I0RlFxUkxGcmlNajBWbnAxZTRieklEUk1BU0FPcnJOdW1Wc2VTMWRmbnpz?= =?utf-8?B?anNBZzBqRFQrYTZEZFArY3ozSDlHUkQwOFE1SjBtVWVkR1NMYlBUOHVZUytC?= =?utf-8?B?dndKUE9nNzdOTS9obHFlRG1iOVd4MWp3VVV1WFNGa3FPeThqemlVVWtsdVlo?= =?utf-8?B?OGhjcms4YjZRaDljZW1jLy9OZlFScXZFR0NES1YwcE93VXROUG1Ua2xSRm1v?= =?utf-8?B?bUJ0V0NTZCtPU05SYnVOQT09?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: acc6d08f-6fea-4540-fb93-08d961a41ea7 X-MS-Exchange-CrossTenant-AuthSource: MWHPR1001MB2158.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Aug 2021 17:26:17.1918 (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: yRI4XtYDKKZNUqTQBLhTaTJxvYDYM1tCQnHeHugM+4RfHU+HXPt5xDP/UiForCY8cjU8r1RMRCB9Wc2rYPSGnw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR10MB4578 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=10079 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 spamscore=0 adultscore=0 suspectscore=0 phishscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2107140000 definitions=main-2108170108 X-Proofpoint-GUID: xCau-Ifgz5DAbM1ItVKDBCdrVxt0dPr7 X-Proofpoint-ORIG-GUID: xCau-Ifgz5DAbM1ItVKDBCdrVxt0dPr7 X-Spam-Status: No, score=-14.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, MSGID_FROM_MTA_HEADER, NICE_REPLY_A, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_BL, RCVD_IN_MSPIKE_L3, SPF_HELO_NONE, SPF_NONE, TXREP 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-List-Received-Date: Tue, 17 Aug 2021 17:26:34 -0000 On 8/17/21 1:04 AM, Richard Biener wrote: > On Mon, Aug 16, 2021 at 7:39 PM Indu Bhagat wrote: >> >> On 8/10/21 4:54 AM, Richard Biener wrote: >>> On Thu, Aug 5, 2021 at 2:52 AM Indu Bhagat via Gcc-patches >>> wrote: >>>> >>>> This patch adds a new target hook to detect if the CTF container can allow the >>>> emission of CTF/BTF debug info at DWARF debug info early finish time. Some >>>> backends, e.g., BPF when generating code for CO-RE usecase, may need to emit >>>> the CTF/BTF debug info sections around the time when late DWARF debug is >>>> finalized (dwarf2out_finish). >>> >>> Without looking at the dwarf2out.c usage in the next patch - I think >>> the CTF part >>> should be always emitted from dwarf2out_early_finish, the "hooks" should somehow >>> arrange for the alternate output specific data to be preserved until >>> dwarf2out_finish >>> time so the late BTF data can be emitted from there. >>> >>> Lumping everything together now just makes it harder to see what info >>> is required >>> to persist and thus make LTO support more intrusive than necessary. >> >> In principle, I agree the approach to split generate/emit CTF/BTF like >> you mention is ideal. But, the BTF CO-RE relocations format is such >> that the .BTF section cannot be finalized until .BTF.ext contents are >> all fully known (David Faust summarizes this issue in the other thread >> "[PATCH, V2 3/3] dwarf2out: Emit BTF in dwarf2out_finish for BPF CO-RE >> usecase".) >> >> In summary, the .BTF.ext section refers to strings in the .BTF section. >> These strings are added at the time the CO-RE relocations are added. >> Recall that the .BTF section's header has information about the .BTF >> string table start offset and length. So, this means the "CTF part" (or >> the .BTF section) cannot simply be emitted in the dwarf2out_early_finish >> because it's not ready yet. If it is still unclear, please let me know. >> >> My judgement here is that the BTF format itself is not amenable to split >> early/late emission like DWARF. BTF has no linker support yet either. > > But are the strings used for the CO-RE relocations not all present already? > Or does the "CTF part" have only "foo", "bar" and "baz" while the CO-RE > part wants to output sth like "foo->bar.baz" (which IMHO would be quite > stupid also for size purposes)? > Yes, the latter ("foo->bar.baz") is closer to what the format does for CO-RE relocations! > That said, fix the format. > > Alternatively hand the CO-RE part its own string table (what's the fuss > with re-using the CTF string table if there's nothing to share ...) > BTF and .BTF.ext formats are specified already by implementations in the kernel, libbpf, and LLVM. For that matter, I should add BPF CO-RE to the mix and say that BPF CO-RE capability _and_ .BTF/.BTF.ext debug formats have been defined already by the BPF kernel developers/associated entities. At this time, we as GCC developers simply extending the BPF backend/BTF generation support in GCC, cannot fix the format. That ship has sailed. Thanks for reviewing and voicing your concerns. Indu > Richard. > >>> >>>> gcc/ChangeLog: >>>> >>>> * config/bpf/bpf.c (ctfc_debuginfo_early_finish_p): New definition. >>>> (TARGET_CTFC_DEBUGINFO_EARLY_FINISH_P): Undefine and override. >>>> * doc/tm.texi: Regenerated. >>>> * doc/tm.texi.in: Document the new hook. >>>> * target.def: Add a new hook. >>>> * targhooks.c (default_ctfc_debuginfo_early_finish_p): Likewise. >>>> * targhooks.h (default_ctfc_debuginfo_early_finish_p): Likewise. >>>> --- >>>> gcc/config/bpf/bpf.c | 14 ++++++++++++++ >>>> gcc/doc/tm.texi | 6 ++++++ >>>> gcc/doc/tm.texi.in | 2 ++ >>>> gcc/target.def | 10 ++++++++++ >>>> gcc/targhooks.c | 6 ++++++ >>>> gcc/targhooks.h | 2 ++ >>>> 6 files changed, 40 insertions(+) >>>> >>>> diff --git a/gcc/config/bpf/bpf.c b/gcc/config/bpf/bpf.c >>>> index 028013e..85f6b76 100644 >>>> --- a/gcc/config/bpf/bpf.c >>>> +++ b/gcc/config/bpf/bpf.c >>>> @@ -178,6 +178,20 @@ bpf_option_override (void) >>>> #undef TARGET_OPTION_OVERRIDE >>>> #define TARGET_OPTION_OVERRIDE bpf_option_override >>>> >>>> +/* Return FALSE iff -mcore has been specified. */ >>>> + >>>> +static bool >>>> +ctfc_debuginfo_early_finish_p (void) >>>> +{ >>>> + if (TARGET_BPF_CORE) >>>> + return false; >>>> + else >>>> + return true; >>>> +} >>>> + >>>> +#undef TARGET_CTFC_DEBUGINFO_EARLY_FINISH_P >>>> +#define TARGET_CTFC_DEBUGINFO_EARLY_FINISH_P ctfc_debuginfo_early_finish_p >>>> + >>>> /* Define target-specific CPP macros. This function in used in the >>>> definition of TARGET_CPU_CPP_BUILTINS in bpf.h */ >>>> >>>> diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi >>>> index cb01528..2d5ff05 100644 >>>> --- a/gcc/doc/tm.texi >>>> +++ b/gcc/doc/tm.texi >>>> @@ -10400,6 +10400,12 @@ Define this macro if GCC should produce debugging output in BTF debug >>>> format in response to the @option{-gbtf} option. >>>> @end defmac >>>> >>>> +@deftypefn {Target Hook} bool TARGET_CTFC_DEBUGINFO_EARLY_FINISH_P (void) >>>> +This target hook returns nonzero if the CTF Container can allow the >>>> + emission of the CTF/BTF debug info at the DWARF debuginfo early finish >>>> + time. >>>> +@end deftypefn >>>> + >>>> @node Floating Point >>>> @section Cross Compilation and Floating Point >>>> @cindex cross compilation and floating point >>>> diff --git a/gcc/doc/tm.texi.in b/gcc/doc/tm.texi.in >>>> index 4a522ae..05b3c2c 100644 >>>> --- a/gcc/doc/tm.texi.in >>>> +++ b/gcc/doc/tm.texi.in >>>> @@ -7020,6 +7020,8 @@ Define this macro if GCC should produce debugging output in BTF debug >>>> format in response to the @option{-gbtf} option. >>>> @end defmac >>>> >>>> +@hook TARGET_CTFC_DEBUGINFO_EARLY_FINISH_P >>>> + >>>> @node Floating Point >>>> @section Cross Compilation and Floating Point >>>> @cindex cross compilation and floating point >>>> diff --git a/gcc/target.def b/gcc/target.def >>>> index 68a46aa..44e2251 100644 >>>> --- a/gcc/target.def >>>> +++ b/gcc/target.def >>>> @@ -4016,6 +4016,16 @@ clobbered parts of a register altering the frame register size", >>>> machine_mode, (int regno), >>>> default_dwarf_frame_reg_mode) >>>> >>>> +/* Return nonzero if CTF Container can finalize the CTF/BTF emission >>>> + at DWARF debuginfo early finish time. */ >>>> +DEFHOOK >>>> +(ctfc_debuginfo_early_finish_p, >>>> + "This target hook returns nonzero if the CTF Container can allow the\n\ >>>> + emission of the CTF/BTF debug info at the DWARF debuginfo early finish\n\ >>>> + time.", >>>> + bool, (void), >>>> + default_ctfc_debuginfo_early_finish_p) >>>> + >>>> /* If expand_builtin_init_dwarf_reg_sizes needs to fill in table >>>> entries not corresponding directly to registers below >>>> FIRST_PSEUDO_REGISTER, this hook should generate the necessary >>>> diff --git a/gcc/targhooks.c b/gcc/targhooks.c >>>> index eb51909..e38566c 100644 >>>> --- a/gcc/targhooks.c >>>> +++ b/gcc/targhooks.c >>>> @@ -2112,6 +2112,12 @@ default_dwarf_frame_reg_mode (int regno) >>>> return save_mode; >>>> } >>>> >>>> +bool >>>> +default_ctfc_debuginfo_early_finish_p (void) >>>> +{ >>>> + return true; >>>> +} >>>> + >>>> /* To be used by targets where reg_raw_mode doesn't return the right >>>> mode for registers used in apply_builtin_return and apply_builtin_arg. */ >>>> >>>> diff --git a/gcc/targhooks.h b/gcc/targhooks.h >>>> index f92e102..55dc443 100644 >>>> --- a/gcc/targhooks.h >>>> +++ b/gcc/targhooks.h >>>> @@ -255,6 +255,8 @@ extern unsigned int default_dwarf_poly_indeterminate_value (unsigned int, >>>> unsigned int *, >>>> int *); >>>> extern machine_mode default_dwarf_frame_reg_mode (int); >>>> +extern bool default_ctfc_debuginfo_early_finish_p (void); >>>> + >>>> extern fixed_size_mode default_get_reg_raw_mode (int); >>>> extern bool default_keep_leaf_when_profiled (); >>>> >>>> -- >>>> 1.8.3.1 >>>> >>