我有一个小程序,在编译时性能要好得多,-O1
而不是没有优化。我有兴趣知道编译器所做的优化导致了这种加速。
我想我会做的是获取-O1
等效于(从手册页和来自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
?