With my tests, AutoFDO could achieve almost half of the effect of instrumentation FDO on real applications such as MySQL 8.0.20 .
Likely this could be improved with some of the missing changes. Apparently discriminator support is worth quite a bit especially on dense C++ code bases. Without that, gcc autofdo only works on line numbers, which can be very limiting if single lines have a lot of basic blocks.
Sadly discriminator support is currently only on the old Google branch and not in gcc mainline
Longer term it would probably be best to replace all this with some custom specialized binary annotation instead of stretching DWARF beyond its limits.
-Andi