3 ms·
I thought PGO instrumentation works on basic blocks, and the inlining, outlining, and register allocation optimisations are all done on llvm’s IR. So everything
by hinoki 4y ago
I thought PGO instrumentation works on basic blocks, and the inlining, outlining, and register allocation optimisations are all done on llvm’s IR. So everything can happen in the backend.
What sort of work is OS specific, or language specific?
I’ve used PGO before, but I’m not familiar with the details.
- Someone 4y agoComputing the profile wasn’t possible on Windows FTA: But there is one problem: PGO was up until now available only on Linux. I think they couldn’t use a profile generated on Linux because of differences in ABI and standard library. I also think generating a profile is OS dependent because you want it to not have much of a performance impact.
- hinoki 4y agoAh, so they could probably generate an instrumented binary for Windows, but there was no infrastructure to actually collect the counts. That would be a lot of work to set up!