<div dir="ltr"><div dir="ltr">On Wed, May 19, 2021 at 1:31 PM Alex Lorenz <<a href="mailto:aleksei_lorenz@apple.com" target="_blank">aleksei_lorenz@apple.com</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">Yes, we use the frontend PGO in Apple clang in Xcode. I’m curious though, what kind of improvements did you see with IR PGO?<br></blockquote><div><br></div><div>Basically what happened is that Chrome started using frontend PGO, and we found that binary patch updates were too large: <a href="https://crbug.com/1082307">https://crbug.com/1082307</a> I came across these Android docs mentioning IR PGO, and suggested we try that: <a href="https://source.android.com/devices/tech/perf/pgo">https://source.android.com/devices/tech/perf/pgo</a> Switching to IR PGO fixed the binary patch size issues and got better scores on Speedometer (1.17x improvement over non-PGO with IR PGO vs. 1.11x improvement with frontend PGO), so we never looked back. We consulted the Google optimization team folks, and they recommended we use IR PGO for performance. That's where they are focusing all of their efforts.</div><div><br></div><div>Essentially, I'd like to figure out which mode is likely to be the best supported going forward, and document that.</div></div></div>