<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 24, 2016 at 6:35 AM, Duncan 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-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="auto"><div><div class="h5"><div><br></div><div><br>On Mar 24, 2016, at 6:22 AM, Teresa Johnson <<a href="mailto:tejohnson@google.com" target="_blank">tejohnson@google.com</a>> wrote:<br><br></div><blockquote type="cite"><div><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Mar 23, 2016 at 11:06 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-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span><br>
> On 2016-Mar-22, at 19:28, Duncan P. N. Exon Smith via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br>
><br>
> 1. If a piece of metadata is referenced from only a single `Function`,<br>
>    serialize that metadata in the function's metadata block instead of<br>
>    the global metadata block.<br>
><br>
>    This addresses problems (a) and (b), primarily targeting<br>
>    `DILocation`s.  It should pick up lots of other stuff, depending on<br>
>    how much inlining has happened.<br>
><br>
>    (I have a draft of the writer side, still working on the reader.)<br>
<br>
</span>Teresa: I had trouble make this work with the delayed metadata parsing<br>
(the logic around "SeenModuleValuesRecord").  My WIP patch rips that<br>
out rather unceremoniously.<br>
<br>
(Attached the patch for reference, but it needs to be cleaned up, split<br>
up, etc.; not ready for review (although comments always welcome)).<br>
<br>
My understanding from Mehdi is that maybe ThinLTO isn't currently<br>
relying on the delayed parsing.  I.e., the original scheme was:<br>
- cherry-pick functions one at a time (never reading metadata), then<br>
- come back at the end to read the metadata all at once.<br>
But the scheme has evolved to:<br>
- calculate the desired functions from each module, then<br>
- load the module and link all the functions in one go.<br></blockquote><div><br></div><div>Right, that is what the FunctionImporter logic has changed to. I was keeping that support alive on the concern that for very large modules the overhead of keeping all the source modules materialized while importing decisions are made would be too high. But since I added a full reference/call graph to the summary and Mehdi has sent a patch to change the importer to do summary-based importing, that concern should be moot.</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
Is that accurate?  If so, I don't see remaining benefit in delaying the<br>
global metadata parsing, just an extra code path to maintain.  Do you<br>
agree?<br>
<br>
</blockquote></div><div class="gmail_extra"><br></div>I think we can take this support out at this point now. </div></div></div></blockquote><div><br></div></div></div><div>Great.</div><span class=""><br><blockquote type="cite"><div><div dir="ltr"><div class="gmail_extra">Note however that llvm-link (used for testing) is still doing function at a time importing and therefore relying on this support. However it shouldn't be hard to rework that to collect all the imports from a given module for batch importing.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Let me take a stab at moving llvm-link over to using batch importing hopefully today or tomorrow, then at least no tests will rely on the post-pass metadata importing and I can pull that out independently.</div></div></div></blockquote><div><br></div></span><div>Thank you!</div></div></blockquote><div><br></div><div>Removed from llvm-link in  r264326.</div><div><br></div><div>Teresa</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="auto"><span class=""><br><blockquote type="cite"><div><div dir="ltr"><div class="gmail_extra">Teresa<br clear="all"><div><br></div>-- <br><div><span style="font-family:Times;font-size:medium"><table cellspacing="0" cellpadding="0"><tbody><tr style="color:rgb(85,85,85);font-family:sans-serif;font-size:small"><td nowrap style="border-top-style:solid;border-top-color:rgb(213,15,37);border-top-width:2px">Teresa Johnson |</td><td nowrap style="border-top-style:solid;border-top-color:rgb(51,105,232);border-top-width:2px"> Software Engineer |</td><td nowrap style="border-top-style:solid;border-top-color:rgb(0,153,57);border-top-width:2px"> <a href="mailto:tejohnson@google.com" target="_blank">tejohnson@google.com</a> |</td><td nowrap style="border-top-style:solid;border-top-color:rgb(238,178,17);border-top-width:2px"> <a href="tel:408-460-2413" value="+14084602413" target="_blank">408-460-2413</a></td></tr></tbody></table></span></div>
</div></div>
</div></blockquote></span></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><span style="font-family:Times;font-size:medium"><table cellspacing="0" cellpadding="0"><tbody><tr style="color:rgb(85,85,85);font-family:sans-serif;font-size:small"><td nowrap style="border-top-style:solid;border-top-color:rgb(213,15,37);border-top-width:2px">Teresa Johnson |</td><td nowrap style="border-top-style:solid;border-top-color:rgb(51,105,232);border-top-width:2px"> Software Engineer |</td><td nowrap style="border-top-style:solid;border-top-color:rgb(0,153,57);border-top-width:2px"> <a href="mailto:tejohnson@google.com" target="_blank">tejohnson@google.com</a> |</td><td nowrap style="border-top-style:solid;border-top-color:rgb(238,178,17);border-top-width:2px"> 408-460-2413</td></tr></tbody></table></span></div>
</div></div>