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

Peter Collingbourne via llvm-dev llvm-dev at lists.llvm.org
Fri May 6 14:43:33 PDT 2016


Agree, I think at least in the long term we'll want to have metadata
attachments on globalobjects be represented with something equivalent to a
multimap. The bitset metadata could also potentially benefit from a concept
of multiple attachments per global, so I'll see if it would be worth doing
it now.

Peter

On Fri, May 6, 2016 at 2:29 PM, Pete Cooper <peter_cooper at apple.com> wrote:

> +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.
>
> Cheers
> Pete
>
> 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 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 listllvm-dev at lists.llvm.orghttp://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
>
>
>


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


More information about the llvm-dev mailing list