<div dir="ltr">FYI, there is also IR PGO that computes function hash using CFG. To turn it on, use -fprofile-generate and -fprofile-use options.<div><br></div><div>David</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, May 14, 2020 at 11:59 PM Serge Guelton via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Folks,<br>
<br>
This review<br>
<br>
    <a href="https://reviews.llvm.org/D79961" rel="noreferrer" target="_blank">https://reviews.llvm.org/D79961</a> <br>
<br>
fixes a relatively serious bug in the computation of the function hash used to<br>
compute index in profile files in clang. Basically the bug was allowing trivial<br>
hash collision of two function that only differ by their last statement(s). This<br>
could lead to segfaukts like this one [1].<br>
<br>
I'm happy with the patch (if you want to review it, please jump in) but I'm also<br>
worried that it changes the hash of *most* functions, thus invalidating all<br>
profile files generated with previous clang revision.<br>
<br>
So if it lands, people will find themselves with a lot of obsolete profile data<br>
that need to be regenerated... I think I'd at least state that clearly on the<br>
mlist, due to the potential large impact.<br>
<br>
- Serge<br>
<br>
<br>
[1] <a href="https://bugzilla.redhat.com/show_bug.cgi?id=1827282" rel="noreferrer" target="_blank">https://bugzilla.redhat.com/show_bug.cgi?id=1827282</a><br>
<br>
_______________________________________________<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="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div>