C ++:-O标志到底做些什么,除了标志加法

时间:2018-07-31 15:15:14

标签: c++ gcc compiler-optimization centos5

我已经生成了包含约200K行代码的C ++代码,并且我正在尝试使用gcc 4.8.5在CentOS 5.11下对其进行编译。当我指定-O1标志时,编译花费了1分33秒。我从-O1启用的thisthis页面中找到了所有优化标志,它们是:

  • -fcombine-stack-adjustments
  • -fcompare-elim
  • -fcprop-registers
  • -fdefer-pop
  • -fforward-propagate
  • -fguess-branch-probability
  • -fif-conversion
  • -fif-conversion2
  • -finline-functions-一次调用
  • -fipa-profile
  • -fipa-pure-const
  • -fipa-reference
  • -fmerge-constants
  • -fshrink-wrap
  • -fsplit-wide-types
  • -ftree-bit-ccp
  • -ftree-ccp
  • -ftree-ch
  • -ftree-copy-prop
  • -ftree-copyrename
  • -ftree-dce
  • -ftree-dominator-opts
  • -ftree-dse
  • -ftree-fre
  • -ftree-sink
  • -ftree-slsr
  • -ftree-sra
  • -ftree-ter

但是当我用这些标志替换-O1时,编译时间减少到34秒。与-O2和-O3相同。

所以,这是一个问题:-O标志到底是什么?如果仅添加其他标志,则编译时间不应更改,但就我而言,会有很大的不同。

0 个答案:

没有答案