<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jan 18, 2017 at 7:00 PM, Saleem Abdulrasool 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:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Out of curiosity, would this be done in a object format agnostic way?  Windows ARM requires the same branch island support, and the logic for the detection and placement could be shared across ELF and COFF I suspect.</div></blockquote><div><br></div><div>I think that most of the code changes needed for this are going to be just refactoring to "put a loop around the Writer" and so is inherently specific to ELF and COFF (since they have different Writer's). Initial thunk placement heuristics/algorithms etc. are likely to be pretty simple (i.e. too small lines of code to really share meaningfully). If we start doing something really complicated for placing thunks it may make sense to factor out so it can be shared, but it may end up like ICF where the algorithms we use are the same, but the details of the data structures and semantics differ enough that it's not clear if sharing them would be a net savings or not.</div><div><br></div><div>-- Sean Silva</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">On Wed, Jan 18, 2017 at 3:59 PM, Simon Atanasyan 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></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="auto"><span><div><br><div class="gmail_extra"><br><div class="gmail_quote">On Jan 19, 2017 2:48 AM, "Ed Maste" <<a href="mailto:emaste@freebsd.org" target="_blank">emaste@freebsd.org</a>> wrote:<br type="attribution"><blockquote class="m_-2304447900622520297m_3215217563065884895quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 4 January 2017 at 13:34, Peter Smith via llvm-dev<br>
<div class="m_-2304447900622520297m_3215217563065884895quoted-text"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br>
> I'm about to start working on range extension thunks in lld. This is<br>
> an attempt to summarize the approach I'd like to take and what the<br>
> impact will be on lld outside of thunks.<br>
<br>
</div>Now that LLD works well for FreeBSD/amd64 (and arm64 is very close)<br>
I'm looking at other architectures, starting with mips64. The<br>
statically-linked toolchain components currently fail to link with an<br>
out of range jump, so I'm very interested in seeing this work<br>
progress. Are you looking at only arm and AArch64? Once the<br>
infrastructure is in I'll try to take a look at mips if nobody else<br>
does first.<br>
</blockquote></div><br></div></div></span><div class="gmail_extra" dir="auto">I'm waiting for this changes too. Now mips thunks places at the end of the corresponding section. Not sure about FreeBSD but on Linux that leads to incorrect code in case of static linking -- a thunk goes between crt*.o files which needs to be "joined" together. Gnu linker puts thunks to the separate section. We need to do the same thing.</div></div>
<br></div></div><span class="">______________________________<wbr>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br>
<br></span></blockquote></div><span class="HOEnZb"><font color="#888888"><br><br clear="all"><div><br></div>-- <br><div class="m_-2304447900622520297gmail_signature" data-smartmail="gmail_signature">Saleem Abdulrasool<br>compnerd (at) compnerd (dot) org</div>
</font></span></div>
<br>______________________________<wbr>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br>
<br></blockquote></div><br></div></div>