最近,我使用GCC编译程序,但是当我使用-O1
优化选项时,它出错了;使用-O0
时没有问题。所以我将-O1
替换为官方文档所说的那些选项,例如-fauto-inc-dec
,-fcompare-elim
,-fcprop-registers
等。
但是,它没有任何错误,但性能不是很好。
我想知道-O1
是否等同于那些小编译选项?
答案 0 :(得分:3)
完全启用优化(-O1
vs -O0
)会以-f
标志无法控制的方式更改代码生成。请注意gcc documentation中的这句话:
并非所有优化都由标志直接控制。本节仅列出具有标志的优化。
一些细节取决于非常具体的gcc版本号(例如,gcc 4.2 vs gcc 4.5,4.9等)。
答案 1 :(得分:1)
The -O1
will turn on the following optimization flags:
-fauto-inc-dec
-fcompare-elim
-fcprop-registers
-fdce
-fdefer-pop
-fdelayed-branch
-fdse
-fguess-branch-probability
-fif-conversion2
-fif-conversion
-fipa-pure-const
-fipa-profile
-fipa-reference
-fmerge-constants
-fsplit-wide-types
-ftree-bit-ccp
-ftree-builtin-call-dce
-ftree-ccp
-ftree-ch
-ftree-copyrename
-ftree-dce
-ftree-dominator-opts
-ftree-dse
-ftree-forwprop
-ftree-fre
-ftree-phiprop
-ftree-slsr
-ftree-sra
-ftree-pta
-ftree-ter
-funit-at-a-time