<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, May 15, 2015 at 3:07 PM, Duncan P. N. Exon Smith <span dir="ltr"><<a href="mailto:dexonsmith@apple.com" target="_blank">dexonsmith@apple.com</a>></span> wrote:<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 class="">
> On 2015-May-15, at 07:30, Teresa Johnson <<a href="mailto:tejohnson@google.com">tejohnson@google.com</a>> wrote:</span><span class=""><br>
>>> - ModuleLinker changes to do ThinLTO-specific symbol linking and<br>
>>> static promotion when necessary. The linkage type of imported<br>
>>> functions changes to AvailableExternallyLinkage, for example. Statics<br>
>>> must be promoted in certain cases, and renamed in consistent ways.<br>
>><br>
>> Ah, could have read ahead again; this answers my questions about<br>
>> referencing global variables with local linkage.<br>
>><br>
>> It also sounds pretty hairy.  Details welcome.<br>
><br>
> It has to be well thought out for sure. We had to do this for LIPO as<br>
> well so already knew what needed to be done here. I will put together<br>
> more details in a follow-on email.<br>
<br>
</span>A separate thread SGTM.  I think it's a fairly big topic.<br></blockquote><div><br></div><div>Wanted to follow up and note that I sent out a detailed description of the symbol linking and renaming with ThinLTO last week. PTAL when you get a chance:</div><div><a href="http://lists.cs.uiuc.edu/pipermail/llvmdev/2015-July/088025.html">http://lists.cs.uiuc.edu/pipermail/llvmdev/2015-July/088025.html</a><br></div><div><br></div><div>There is a summary table at the end but it looks better formatted in the pdf attached to that email.</div><div><br></div><div>Thanks,</div><div>Teresa</div><div> </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>
Please include information on how you avoid name clashes globally, and<br>
how you demote the functions back to internal or private linkage before<br>
the end of the link.<br>
</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>