Diego Novillo
2015-Apr-16 19:15 UTC
[LLVMdev] RFC: Metadata attachments to function definitions
On 04/15/15 12:55, Duncan P. N. Exon Smith wrote:>> On 2015-Apr-15, at 08:11, Ivan Baev <ibaev at codeaurora.org> wrote: >> >>> Date: Tue, 14 Apr 2015 21:33:03 -0700 >>> From: "Duncan P. N. Exon Smith" <dexonsmith at apple.com> >>> To: LLVM Developers Mailing List <llvmdev at cs.uiuc.edu> >>> Subject: [LLVMdev] RFC: Metadata attachments to function definitions >>> Message-ID: <BF4002F0-06DC-4A25-AF84-7D21AD48121A at apple.com> >>> Content-Type: text/plain; charset=us-ascii >>> >>> >>> `Function` definitions should support `MDNode` attachments, with a >>> similar syntax to instructions: >>> >>> define void @foo() nounwind !attach !0 { >>> unreachable >>> } >>> !0 = !{} >>> >>> Attachments wouldn't be allowed on declarations, just definitions. >>> >>> There are two open problems this can help with: >>> >>> 1. For PGO, we need somewhere to attach the function entry count. >>> Attaching to the function definition is a simple solution. >>> >>> define void @foo() !prof !0 { >>> unreachable >>> } >>> !0 = !{i32 987} >> >> That will be great. Would it be better if the type is i64? We really want >> to avoid an overflow if possible. What is the type for the raw profile >> data for region(0)? > Right, of course; `i64` makes more sense for entry counts. BTW, I'm not > volunteering to implement this one myself, just to provide the metadata > infrastructure.Since I need to add this, I'll put it on my todo list. Diego.
Duncan P. N. Exon Smith
2015-Apr-16 21:24 UTC
[LLVMdev] RFC: Metadata attachments to function definitions
> On 2015-Apr-16, at 12:15, Diego Novillo <dnovillo at google.com> wrote: > > > > On 04/15/15 12:55, Duncan P. N. Exon Smith wrote: >>> On 2015-Apr-15, at 08:11, Ivan Baev <ibaev at codeaurora.org> wrote: >>> >>>> Date: Tue, 14 Apr 2015 21:33:03 -0700 >>>> From: "Duncan P. N. Exon Smith" <dexonsmith at apple.com> >>>> To: LLVM Developers Mailing List <llvmdev at cs.uiuc.edu> >>>> Subject: [LLVMdev] RFC: Metadata attachments to function definitions >>>> Message-ID: <BF4002F0-06DC-4A25-AF84-7D21AD48121A at apple.com> >>>> Content-Type: text/plain; charset=us-ascii >>>> >>>> >>>> `Function` definitions should support `MDNode` attachments, with a >>>> similar syntax to instructions: >>>> >>>> define void @foo() nounwind !attach !0 { >>>> unreachable >>>> } >>>> !0 = !{} >>>> >>>> Attachments wouldn't be allowed on declarations, just definitions. >>>> >>>> There are two open problems this can help with: >>>> >>>> 1. For PGO, we need somewhere to attach the function entry count. >>>> Attaching to the function definition is a simple solution. >>>> >>>> define void @foo() !prof !0 { >>>> unreachable >>>> } >>>> !0 = !{i32 987} >>> >>> That will be great. Would it be better if the type is i64? We really want >>> to avoid an overflow if possible. What is the type for the raw profile >>> data for region(0)? >> Right, of course; `i64` makes more sense for entry counts. BTW, I'm not >> volunteering to implement this one myself, just to provide the metadata >> infrastructure. > > Since I need to add this, I'll put it on my todo list.Already clarified over IRC, but FTR: I *will* implement metadata attachments to functions, but likely won't be doing the work to use them for PGO.
Diego Novillo
2015-Apr-17 02:51 UTC
[LLVMdev] RFC: Metadata attachments to function definitions
On Thu, Apr 16, 2015 at 5:24 PM, Duncan P. N. Exon Smith <dexonsmith at apple.com> wrote:> Already clarified over IRC, but FTR: I *will* implement metadata attachments > to functions, but likely won't be doing the work to use them for PGO.Sure. SGTM. Diego.