-fprofile-generate
を有効にするとGCCが収集する情報と、収集した情報を実際に使用する最適化(-fprofile-use
フラグを設定する場合)
ここで引用が必要です。しばらく検索しましたが、文書化されたものは見つかりませんでした。
リンク時最適化(LTO)に関する情報は有益です! = D
-fprofile-generate
は、-fprofile-arcs
、-fprofile-values
、および-fvpt
を有効にします。
-fprofile-use
は-fbranch-probabilities
、-fvpt
、-funroll-loops
、-fpeel-loops
、および-ftracer
を有効にします
ソース: http://gcc.gnu.org/onlinedocs/gcc-4.7.2/gcc/Optimize-Options.html#Optimize-Options
PS。 LTOに関する情報もそのページにあります。
「すべてのプログラマがメモリについて知っておくべきこと」by Ulrich Drepper https://people.freebsd.org/~lstewart/articles/cpumemory.pdfhttp://www.akkadia.org /drepper/cpumemory.pdf
セクション7.4
結果は、プロセッサの命令キャッシュにコードをプリフェッチする方が優れているため、より高速に実行されるはずです。