<div dir="auto">On Apr 27, 2017 8:27 AM, "Rafael Espíndola" <<a href="mailto:rafael.espindola@gmail.com">rafael.espindola@gmail.com</a>> wrote:<div dir="auto"><div dir="auto"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 26 April 2017 at 13:53, Peter Collingbourne via llvm-commits<br>
<div class="elided-text"><<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br>
> Author: pcc<br>
> Date: Wed Apr 26 12:53:39 2017<br>
> New Revision: 301438<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=301438&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project?rev=301438&view=rev</a><br>
> Log:<br>
> LTO: Mark undefined module asm symbols as used.<br>
><br>
> Marking them as used causes them to be considered visible outside of LTO. This<br>
> prevents the symbols from being internalized or discarded, either by GlobalDCE<br>
> or by summary-based dead stripping in ThinLTO.<br>
><br>
> This change makes it unnecessary to add these symbols to llvm.compiler.used<br>
> in the backend, as the symbols are kept alive by virtue of being external,<br>
> so remove the backend code that handles that.<br>
><br>
> Fixes PR32798.<br>
><br>
> Differential Revision: <a href="https://reviews.llvm.org/D32544" rel="noreferrer" target="_blank">https://reviews.llvm.org/<wbr>D32544</a><br>
><br>
> Modified:<br>
>     lld/trunk/test/ELF/lto/<wbr>asmundef.ll<br>
><br>
> Modified: lld/trunk/test/ELF/lto/<wbr>asmundef.ll<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/lto/asmundef.ll?rev=301438&r1=301437&r2=301438&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/lld/trunk/test/ELF/<wbr>lto/asmundef.ll?rev=301438&r1=<wbr>301437&r2=301438&view=diff</a><br>
> ==============================<wbr>==============================<wbr>==================<br>
> --- lld/trunk/test/ELF/lto/<wbr>asmundef.ll (original)<br>
> +++ lld/trunk/test/ELF/lto/<wbr>asmundef.ll Wed Apr 26 12:53:39 2017<br>
> @@ -20,6 +20,5 @@ define void @_start() {<br>
>    ret void<br>
>  }<br>
><br>
> -; CHECK: @llvm.compiler.used = appending global [1 x i8*] [i8* bitcast (void ()* @foo to i8*)], section "llvm.metadata"<br>
> -; CHECK: define internal void @foo<br>
> +; CHECK: define void @foo<br>
<br>
</div>This is a small code quality regression. Before we had an internal GV<br>
that we knew we had to keep. Now we have an external GV.<br>
<br>
Would it be too hard to get it back?<br>
<br>
Cheers,<br>
Rafael<br></blockquote></div></div></div></div><div dir="auto"><br></div><div dir="auto"><div dir="auto"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
</blockquote></div><span style="font-family:sans-serif">Is there any difference between the two other than the linkage in the object file?</span><div dir="auto" style="font-family:sans-serif"><br></div><div dir="auto" style="font-family:sans-serif">Peter</div></div></div></div></div>