<div dir="ltr">We intentionally drop this +1 in IR level PGO instrumentation. I thing branch weight can handle 0 weight now. <div><br></div><div>Thanks,</div><div><br></div><div>-Rong</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Apr 7, 2016 at 11:05 AM, Johan Engelen <span dir="ltr"><<a href="mailto:j.b.c.engelen@alumnus.utwente.nl" target="_blank">j.b.c.engelen@alumnus.utwente.nl</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">johanengelen added a comment.<br>
<br>
(thanks for your work on this btw! ;)<br>
<br>
<br>
================<br>
Comment at: test/Transforms/PGOProfile/icp_vararg.ll:33<br>
@@ +32,2 @@<br>
+!1 = !{!"VP", i32 0, i64 12345, i64 989055279648259519, i64 12345}<br>
+; ICALL-PROM: [[BRANCH_WEIGHT]] = !{!"branch_weights", i32 12345, i32 0}<br>
----------------<br>
I think the branch_weights are calculated slightly wrong.<br>
branch_weights usually have an offset of 1, where 1 means there is no profile measurement that it was taken. See the documentation of scaleBranchWeight in CodeGenPGO.cpp of Clang.<br>
<br>
<br>
<a href="http://reviews.llvm.org/D17864" rel="noreferrer" target="_blank">http://reviews.llvm.org/D17864</a><br>
<br>
<br>
<br>
</blockquote></div><br></div>