c++gccpgolto

What information does GCC Profile Guided Optimization (PGO) collect and which optimizations use it?


Which information does GCC collect when I enable -fprofile-generate and which optimization does in fact uses the collected information (when setting the -fprofile-use flag) ?

I need citations here. I've searched for a while but didn't found anything documented.

Information regarding link-time optimization (LTO) would be a plus! =D


Solution

  • -fprofile-generate enables -fprofile-arcs, -fprofile-values and -fvpt.

    -fprofile-use enables -fbranch-probabilities, -fvpt, -funroll-loops, -fpeel-loops and -ftracer

    Source: http://gcc.gnu.org/onlinedocs/gcc-4.7.2/gcc/Optimize-Options.html#Optimize-Options

    PS. Information about LTO also on that page.