<div dir="ltr"><br><br><div class="gmail_quote">On Thu, May 7, 2015 at 9:36 AM Shankar Easwaran <<a href="mailto:shankare@codeaurora.org">shankare@codeaurora.org</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 5/7/2015 11:19 AM, Reid Kleckner wrote:<br>
> On Thu, May 7, 2015 at 8:36 AM, Shankar Easwaran <<a href="mailto:shankare@codeaurora.org" target="_blank">shankare@codeaurora.org</a>><br>
> wrote:<br>
><br>
>> The atom model is optimized when you compile the code with<br>
>> -ffunction-sections and -fdata-sections.<br>
>><br>
> Not really, -ffunction-sections -fdata-sections gives a section-based<br>
> linker the same flexibility as an atom-based linker.<br>
><br>
> In the atom model, these extra sections simply serve as a crutch to ensure<br>
> that object files can be safely atomized. If you commit to the atom model,<br>
> you shouldn't even need these sections, you should only need a flag that<br>
> says "this section is safe for atomization". On MachO, this is what<br>
> .subsections_via_symbols is for.<br>
We could have this flag on ELF too ? This will reducing code from third<br>
party libraries ??<br></blockquote><div><br></div><div><div>It's really not that much unless you're up against a very hard object file input size to your linker. The total size added by -ffunction-sections is very small.</div></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
><br>
>> Once targets start having -fno-unique-section-names as the default the<br>
>> atom model looks more promising.<br>
>><br>
> Why does LLD care about -fno-unique-section-names? I thought this was just<br>
> an object file size optimization.<br>
Sorry I meant -ffunction-sections along with -fno-unique-section-names.<br>
><br></blockquote><div><br></div><div>There's not much a reason to do this now that we have the size optimization that Rafael put in.</div><div><br></div><div>-eric</div><div> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
>> Everyone likes to have the image size small, and making<br>
>> -ffunction-sections/-fdata-sections (or) -fno-unique-section-names the<br>
>> default make sense and the atom model design directly has a relation to it.<br>
>> In fact it simplifies the linker to not have extra data structures IMO.<br>
><br>
> Again, the same is achievable in the section model by turning on these<br>
> flags and enabling --gc-sections or equivalent functionality.<br>
><br>
> The only advantage I see to using the atom model for ELF and COFF is that<br>
> we could dead strip object files built without -ffunction-sections<br>
> -fdata-sections, which would allow us to turn these flags off in the<br>
> compiler and save on object file size. I suspect the complexity of the atom<br>
> model isn't worth the file size savings it offers.<br>
><br>
<br>
<br>
--<br>
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by the Linux Foundation<br>
<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu" target="_blank">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
</blockquote></div></div>