-O1
最適化なしではなく、コンパイルした方がはるかに優れた小さなプログラムがあります。コンパイラによって行われた最適化がこの高速化につながっていることを知りたいです。
私がやろうと思ったのは-O1
、(man ページと の両方から取得した) と同等の最適化フラグのリストを取得gcc -Q -v
し、そのリストを取り出して、パフォーマンスがどのように変化するかを確認することです。
私が見つけたのは、最適化のリスト全体を含めても、-O1 最適化されたものと同じように機能するプログラムが得られないということです。
言い換えると
gcc -O0 -fcprop-registers -fdefer-pop -fforward-propagate -fguess-branch-probability \
-fif-conversion -fif-conversion2 -finline -fipa-pure-const -fipa-reference \
-fmerge-constants -fsplit-wide-types -ftoplevel-reorder -ftree-ccp -ftree-ch \
-ftree-copy-prop -ftree-copyrename -ftree-dce -ftree-dominator-opts -ftree-dse \
-ftree-fre -ftree-sink -ftree-sra -ftree-ter myprogram.c
と同じではありません
gcc -O1 myprogram.c
gcc バージョン 4.5.3 を使用しています
マニュアルに-O1
関連付けられている最適化フラグのリストに含まれていないものは他にありますか?-O1