PGO = profile-guided optimization. I mentioned how to use it already.. `-fprofile-generate...` .
It's not on by default because how it works is gcc instruments your code, counts what happens based on your sample program, then uses this information to make good judgements (unlike usual guesswork heuristics). To be on by default would require a sample program often with sample input data which cannot be assumed by default. It wouldn't be crazy for gcc to accept some "sample program invocation" string as a command argument, but it does not. That's how my `nim-pgo` wrapper script works, though. I just say `nim-pgo prog './prog data' '--gc:arc'`.