[llvm-dev] RFC: metadata attachments for global variables

Pete Cooper via llvm-dev llvm-dev at lists.llvm.org
Fri May 6 14:29:41 PDT 2016

+1 or attaching metadata to globals.  I’d be curious if we can attach !range to a global representing an enum for example.  But…

Should we care about GlobalMerge for !dbg here?  Currently if we merge globals ‘a’ and ‘b’ in to __merged_global, i guess the DIGlobalVariable’s for ‘a’ and ‘b’ would now both point to the new __merged_global.

If thats the case, then by having the !dbg on the global, we wouldn’t be able to handle this case, unless you allow the !dbg to (optionally) point to a list of DIGlobalVariable’s.

BTW, this isn’t something I think should block this bug, but just wanted to point out that it could be an issue.  MergeFunction’s likely has a similar issue with !dbg on functions and I guess we don’t handle it there either.

> On May 6, 2016, at 2:23 PM, Philip Reames via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> +1.  I've seen a couple of cases where metadata on a global would be useful as an optimization hint as well.  
> Philip
> On 05/06/2016 01:17 PM, Peter Collingbourne via llvm-dev wrote:
>> Hi all,
>> I'd like to add support for metadata attachments for global variables in the same way as we did for functions.
>> Syntax would be pretty simple:
>> @foo = global i32 0, !foo !0, !bar !1
>> (the extra commas are required to disambiguate from a named metadata on the next line)
>> Benefits:
>> 1) Lets us reverse the DIGlobalVariable -> GlobalVariable edge, which should hopefully clear the way for removing the llvm.dbg.cu <http://llvm.dbg.cu/> named metadata node.
>> 2) Allows for bitset metadata to be attached to globals rather than being represented as a named metadata node. This means that bitset metadata is naturally dropped when globals are dropped, and makes it easier to manipulate bitset metadata and build summaries of bitset definitions.
>> Comments appreciated.
>> Thanks,
>> -- 
>> -- 
>> Peter
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev <http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160506/5ac3213f/attachment.html>

More information about the llvm-dev mailing list