<div dir="auto"><div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">J. Gareth Moreton <<a href="mailto:gareth@moreton-family.com">gareth@moreton-family.com</a>> schrieb am Fr., 8. Nov. 2019, 14:28:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
On 08/11/2019 13:14, Sven Barth via fpc-devel wrote:<br>
> ...<br>
> What's stopping that? Simple: no driving need. It's just work for <br>
> something that has essentially no gain.<br>
<br>
No gain? Wow, is whole-program optimisation that underperforming? Given <br>
the bloated size of FPC's binaries compared to, say, what a mainstream <br>
C++ compiler than do, I would have thought that there could be a lot <br>
that could be stripped out in regards to unused functions and the like.  <br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Unused functions are handled by smart linking. No need for WPO here. WPO is needed for devirtualisation for example where the compiler is a very good usecase for due to the architecture of the backend. For other real world applications your mileage may vary. </div><div dir="auto">One possible further WPO task would be deduplication of generic specializations for the same types (at least unless the target also supports comdat sections). </div><div dir="auto">But all in all WPO isn't used that much in the real world. </div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Or am I missing something?  The large binary sizes feel like an elephant <br>
in the room that no-one talks about.  What causes them?<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Mainly RTTI and the fact that FPC provides a statically linked RTL. Change MSVC to static linking and suddenly you get 300 KB executables as well. </div><div dir="auto"><br></div><div dir="auto">Back when I did the first tests with dynamic packages the chmcmd binary only had 20 KB or so, but the necessary package libraries were much bigger (and there smart linking and WPO are both much less usable as they can only strip stuff that is not exported). </div><div dir="auto"><br></div><div dir="auto">Regards, </div><div dir="auto">Sven </div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
</blockquote></div></div></div>