<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, May 6, 2016 at 2:10 PM, David Blaikie <span dir="ltr"><<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><span class="">On Fri, May 6, 2016 at 2:09 PM, David Blaikie <span dir="ltr"><<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><span>On Fri, May 6, 2016 at 1:55 PM, Peter Collingbourne via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><span>On Fri, May 6, 2016 at 1:21 PM, Duncan P. N. Exon Smith <span dir="ltr"><<a href="mailto:dexonsmith@apple.com" target="_blank">dexonsmith@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><span><br>
> On 2016-May-06, at 13:17, Peter Collingbourne <<a href="mailto:peter@pcc.me.uk" target="_blank">peter@pcc.me.uk</a>> wrote:<br>
><br>
> Hi all,<br>
><br>
> I'd like to add support for metadata attachments for global variables in the same way as we did for functions.<br>
><br>
> Syntax would be pretty simple:<br>
> @foo = global i32 0, !foo !0, !bar !1<br>
> (the extra commas are required to disambiguate from a named metadata on the next line)<br>
<br>
</span>SGTM.<br>
<span><br>
> Benefits:<br>
> 1) Lets us reverse the DIGlobalVariable -> GlobalVariable edge, which should hopefully clear the way for removing the <a href="http://llvm.dbg.cu" rel="noreferrer" target="_blank">llvm.dbg.cu</a> named metadata node.<br>
<br>
</span>A little harder than it sounds (need to somehow support a GlobalVariable that is RAUW'ed with a ConstantInt), but I think this is important to do.<br></blockquote><div><br></div></span><div>How can a GlobalVariable be replaced with a ConstantInt? Wouldn't that just be an absolute address?</div></div></div></div></blockquote><div><br></div></span><div>If the global variable has a known constant value & the address is never needed, then we might optimize away the storage and still want debug info describing the constant. </div></div></div></div></blockquote><div><br></div></span><div>I'm not sure under what conditions, if any, that currently works - so this may be more of a "nice to have" or "be good to think about how any future design wouldn't preclude fixing this gap" sort of thing.</div></div></div></div></blockquote><div><br></div><div>It looks like this is how debug info for static data members used to look until r172591 landed back in 2013. There are a couple of tests that exercise this path (DebugInfo/X86/multiple-at-const-val.ll and DebugInfo/X86/pr12831.ll) but it seems likely that they were just upgraded manually.</div><div><br></div><div>Do we care about backwards compatibility for debug info from that far back? I assume we don't, since this predates the last debug info version bump in 2015 (r231082 which introduced the debug info hierarchy). If that's the case, I intend to "upgrade" this metadata by dropping it, and we can probably think of some other representation later for a constant folded global.</div><div><br></div><div>Thanks,</div></div>-- <br><div class="gmail_signature"><div dir="ltr">-- <div>Peter</div></div></div>
</div></div>