<div dir="ltr"><div dir="ltr">On Wed, 9 Sep 2020 at 01:21, Min-Yih Hsu via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">From the above experiments we observed that compilation / link time improvement scaled linearly with the percentage of cold functions we skipped. Even if we only skipped functions that never got executed (i.e. had counter values equal to zero, which is effectively “0%”), we already had 5~10% of “free ride” on compilation / linking speed improvement and barely had any target performance penalty.</div></blockquote><div><br></div><div>Hi Min (Paul, Edd),</div><div><br></div><div>This is great work! Small, clear patch, substantial impact, virtually no downsides.</div><div><br></div><div>Just looking at your test-suite numbers, not optimising functions "never used" during the profile run sounds like an obvious "default PGO behaviour" to me. The flag defining the percentage range is a good option for development builds.</div><div><br></div><div><div>I imagine you guys have run this on internal programs and found beneficial, too, not just the LLVM test-suite (which is very small and non-representative). It would be nice if other groups that already use PGO could try that locally and spot any issues.</div><div><br></div><div>cheers,</div><div>--renato</div><div></div></div></div></div>