ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
# 打印优化级别的对应选项 ## 例子 $ gcc -Q --help=optimizers The following options control optimizations: -O<number> -Ofast -Os -falign-functions [disabled] -falign-jumps [disabled] -falign-labels [disabled] -falign-loops [disabled] -fasynchronous-unwind-tables [enabled] -fbranch-count-reg [enabled] -fbranch-probabilities [disabled] -fbranch-target-load-optimize [disabled] -fbranch-target-load-optimize2 [disabled] -fbtr-bb-exclusive [disabled] -fcaller-saves [disabled] -fcombine-stack-adjustments [disabled] -fcommon [enabled] -fcompare-elim [disabled] -fconserve-stack [disabled] -fcprop-registers [disabled] -fcrossjumping [disabled] -fcse-follow-jumps [disabled] -fcx-fortran-rules [disabled] -fcx-limited-range [disabled] -fdata-sections [disabled] -fdce [enabled] -fdefer-pop [disabled] -fdelayed-branch [disabled] -fdelete-null-pointer-checks [enabled] -fdevirtualize [disabled] -fdse [enabled] -fearly-inlining [enabled] -fexceptions [disabled] -fexpensive-optimizations [disabled] -ffinite-math-only [disabled] -ffloat-store [disabled] -fforward-propagate [disabled] -fgcse [disabled] -fgcse-after-reload [disabled] -fgcse-las [disabled] -fgcse-lm [enabled] -fgcse-sm [disabled] -fgraphite-identity [disabled] -fguess-branch-probability [disabled] -fhandle-exceptions -fif-conversion [disabled] -fif-conversion2 [disabled] -finline-functions [disabled] -finline-functions-called-once [enabled] -finline-small-functions [disabled] -fipa-cp [disabled] -fipa-cp-clone [disabled] -fipa-matrix-reorg [disabled] -fipa-profile [disabled] -fipa-pta [disabled] -fipa-pure-const [disabled] -fipa-reference [disabled] -fipa-sra [disabled] -fivopts [enabled] -fjump-tables [enabled] -floop-block [disabled] -floop-flatten [disabled] -floop-interchange [disabled] -floop-parallelize-all [disabled] -floop-strip-mine [disabled] -flto-report [disabled] -fltrans [disabled] -fmath-errno [enabled] -fmerge-all-constants [disabled] -fmerge-constants [disabled] -fmodulo-sched [disabled] -fmove-loop-invariants [enabled] -fnon-call-exceptions [disabled] -fnothrow-opt [disabled] -fomit-frame-pointer [disabled] -foptimize-register-move [disabled] -foptimize-sibling-calls [disabled] -fpack-struct [disabled] -fpack-struct=<number> -fpeel-loops [disabled] -fpeephole [enabled] -fpeephole2 [disabled] -fpredictive-commoning [disabled] -fprefetch-loop-arrays [enabled] -freg-struct-return [disabled] -fregmove [disabled] -frename-registers [enabled] -freorder-blocks [disabled] -freorder-blocks-and-partition [disabled] -freorder-functions [disabled] -frerun-cse-after-loop [disabled] -freschedule-modulo-scheduled-loops [disabled] -frounding-math [disabled] -frtti [enabled] -fsched-critical-path-heuristic [enabled] -fsched-dep-count-heuristic [enabled] -fsched-group-heuristic [enabled] -fsched-interblock [enabled] -fsched-last-insn-heuristic [enabled] -fsched-pressure [disabled] -fsched-rank-heuristic [enabled] -fsched-spec [enabled] -fsched-spec-insn-heuristic [enabled] -fsched-spec-load [disabled] -fsched-spec-load-dangerous [disabled] -fsched-stalled-insns [disabled] -fsched-stalled-insns-dep [enabled] -fsched2-use-superblocks [disabled] -fschedule-insns [disabled] -fschedule-insns2 [disabled] -fsection-anchors [disabled] -fsel-sched-pipelining [disabled] -fsel-sched-pipelining-outer-loops [disabled] -fsel-sched-reschedule-pipelined [disabled] -fselective-scheduling [disabled] -fselective-scheduling2 [disabled] -fshort-double [disabled] -fshort-enums [enabled] -fshort-wchar [disabled] -fsignaling-nans [disabled] -fsigned-zeros [enabled] -fsingle-precision-constant [disabled] -fsplit-ivs-in-unroller [enabled] -fsplit-wide-types [disabled] -fstrict-aliasing [disabled] -fstrict-enums [disabled] -fthread-jumps [disabled] -fno-threadsafe-statics [enabled] -ftoplevel-reorder [enabled] -ftrapping-math [enabled] -ftrapv [disabled] -ftree-bit-ccp [disabled] -ftree-builtin-call-dce [disabled] -ftree-ccp [disabled] -ftree-ch [disabled] -ftree-copy-prop [disabled] -ftree-copyrename [disabled] -ftree-cselim [enabled] -ftree-dce [disabled] -ftree-dominator-opts [disabled] -ftree-dse [disabled] -ftree-forwprop [enabled] -ftree-fre [disabled] -ftree-loop-distribute-patterns [disabled] -ftree-loop-distribution [disabled] -ftree-loop-if-convert [enabled] -ftree-loop-if-convert-stores [disabled] -ftree-loop-im [enabled] -ftree-loop-ivcanon [enabled] -ftree-loop-optimize [enabled] -ftree-lrs [disabled] -ftree-phiprop [enabled] -ftree-pre [disabled] -ftree-pta [enabled] -ftree-reassoc [enabled] -ftree-scev-cprop [enabled] -ftree-sink [disabled] -ftree-slp-vectorize [enabled] -ftree-sra [disabled] -ftree-switch-conversion [disabled] -ftree-ter [disabled] -ftree-vect-loop-version [enabled] -ftree-vectorize [disabled] -ftree-vrp [disabled] -funit-at-a-time [enabled] -funroll-all-loops [disabled] -funroll-loops [disabled] -funsafe-loop-optimizations [disabled] -funsafe-math-optimizations [disabled] -funswitch-loops [disabled] -funwind-tables [disabled] -fvar-tracking [enabled] -fvar-tracking-assignments [enabled] -fvar-tracking-assignments-toggle [disabled] -fvar-tracking-uninit [disabled] -fvariable-expansion-in-unroller [disabled] -fvect-cost-model [enabled] -fvpt [disabled] -fweb [enabled] -fwhole-program [disabled] -fwpa [disabled] -fwrapv [disabled] ## 技巧 如上所示,使用`-Q --help=optimizers`选项可以打印出gcc的所有优化(相关的)选项,以及缺省情况下它们是否打开。类似的,你也可以查看不同优化级别下,这些优化选项是否打开: $ gcc -Q --help=optimizers -O $ gcc -Q --help=optimizers -O1 $ gcc -Q --help=optimizers -O2 $ gcc -Q --help=optimizers -O3 $ gcc -Q --help=optimizers -Og $ gcc -Q --help=optimizers -Os $ gcc -Q --help=optimizers -Ofast 详情参见[gcc手册](https://gcc.gnu.org/onlinedocs/gcc/Overall-Options.html#Overall-Options) ## 贡献者 xmj