<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Dec 9, 2016 at 3:50 PM, Adrian Prantl <span dir="ltr"><<a href="mailto:aprantl@apple.com" target="_blank">aprantl@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
> On Dec 9, 2016, at 3:40 PM, Teresa Johnson via Phabricator <<a href="mailto:reviews@reviews.llvm.org">reviews@reviews.llvm.org</a>> wrote:<br>
><br>
> tejohnson created this revision.<br>
> tejohnson added reviewers: mehdi_amini, dexonsmith, dblaikie, aprantl.<br>
> tejohnson added a subscriber: llvm-commits.<br>
><br>
> As discussed on mailing list, for ThinLTO importing we don't need<br>
> to import all the fields of the DICompileUnit. Don't import enums,<br>
> macros, retained types lists. Also only import local scoped imported<br>
> entities. Since we don't currently import any global variables,<br>
> we also don't need to import the list of global variables (added an<br>
> assert to verify none are being imported).<br>
<br>
</span>Just to be sure I understand the reasoning: We are not importing the list of global variables when importing a CU for the purpose of ThinLTO-inling and there will be no regression in debug info quality, because we will still emit the debug info for the global variables listed in said CU when we compile the one .o file where that CU came from.<br></blockquote><div><br></div><div>Right. And I have an assert there to verify that we aren't importing any. In the future we may change this, and would need to put any that were imported onto the imported CU. Thanks, Teresa </div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class="HOEnZb"><font color="#888888"><br>
-- adrian<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
><br>
> This is being done by pre-populating the value map entries to map<br>
> the unneeded metadata to nullptr. For the imported entities, we can<br>
> simply replace the source module's list with a new list containing<br>
> only those needed imported entities. This is done in the IRLinker<br>
> constructor so that value mapping automatically does the desired<br>
> mapping.<br>
<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="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>