<div dir="ltr">

<div dir="ltr" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">I am very interested in reviving this.<span></span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><span> </span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">Did anyone get any further with these ideas?<span></span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><span> </span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">@Grimar: Did you do any profiling of the code? Were the slowdowns<span></span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">you were seeing fundamental (i.e. due to IO) or could a more optimal<span></span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">implementation reduce the slowdown? Did you do any end to end<span></span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">timings for compilation + link time?<span></span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><span> </span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">The same issues arise for all metadata sections:<span></span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><span> </span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">.eh_frame<span></span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">.debug_*<span></span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">.stack_sizes<span></span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">etc...<span></span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><span> </span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">In our proprietary linker we've had to implement special handling<span></span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">for each of these sections, which we'd love to be able to remove or</p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">reduce.<span></span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><span> </span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">One fundamental problem is overhead. I posted about<span></span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">this on the gabi list:<span></span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><span> </span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><a href="https://groups.google.com/d/msg/generic-abi/A-1rbP8hFCA/EDA7Sf3KBwAJ" target="_blank" style="color:rgb(17,85,204)">https://groups.google.com/d/<wbr>msg/generic-abi/A-1rbP8hFCA/<wbr>EDA7Sf3KBwAJ</a><span></span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><span> </span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">Take the .stack_sizes section. There is an llvm bug<span></span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">which suggests that we should produce multiple .stack_size<span></span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">sections rather than one monolithic .stack_size section:<span></span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><a href="https://bugs.llvm.org/show_bug.cgi?id=36717" target="_blank" style="color:rgb(17,85,204)">https://bugs.llvm.org/show_<wbr>bug.cgi?id=36717</a>.<span></span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">However, for .stack_sizes the payload is on average 10 bytes<span></span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">per function. Splitting into multiple sections on elf x86-64 adds<span></span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">a overhead of 128 bytes per function. An order of magnitude<span></span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">increase. However, I don't know of any way to avoid this increase<span></span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">without adding special case code to the linker?<span></span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><span> </span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">Another thought is that although the gnu linkers are a concern<span></span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">upstream, ​on our platform (and others where we are fully in control),<span></span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">we could use this approach for .eh_frame. W<span style="font-size:11pt">e would be able to test</span></p><p class="gmail-m_6978494689053410199gmail-MsoPlainText" style="margin:0cm 0cm 0.0001pt"><font face="Calibri, sans-serif"><span style="font-size:11pt">and maintain the<span> </span></span><span style="font-size:14.6667px">separate</span><span style="font-size:11pt"> code paths in the backend.</span></font></p></div></div>