[cfe-dev] Status of IR vs. frontend PGO (fprofile-generate vs fprofile-instr-generate)

Reid Kleckner via cfe-dev cfe-dev at lists.llvm.org
Wed May 19 13:55:12 PDT 2021


On Wed, May 19, 2021 at 1:31 PM Alex Lorenz <aleksei_lorenz at apple.com>
wrote:

> 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?
>

Basically what happened is that Chrome started using frontend PGO, and we
found that binary patch updates were too large: https://crbug.com/1082307 I
came across these Android docs mentioning IR PGO, and suggested we try
that: https://source.android.com/devices/tech/perf/pgo 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.

Essentially, I'd like to figure out which mode is likely to be the best
supported going forward, and document that.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20210519/96643146/attachment-0001.html>


More information about the cfe-dev mailing list