GCC-O优化等级详解

更新时间:2023-06-15 02:46:18 阅读: 评论:0

GCC-O优化等级详解
GCC提供选项控制代码的优化等级:
一张照片是什么这些选项可以实现不同程度的优化。
没有任何优化选项的话,编译时的⽬标是降低编译成本,并使调试产⽣预期的结果。语句是独⽴的:如果你使程序停⽌在语句之间设置的断点处,你可以改变任何变量的值或者改变程序计数器的值使程序执⾏任意函数中的语句并得到源代码中期望的结果。
打开优化标志使编译器尝试以编译时间和可能的调试程序的能⼒为代价来改进性能和/或代码⼤⼩。
高德地图怎么用
编译器根据程序的信息执⾏优化。 ⼀次编译多个⽂件⽣成单个可执⾏⽂件的模式允许编译器在编译每个⽂件时使⽤从所有⽂件中获取的信息。
并⾮所有优化都由标志直接控制。以下仅列出具有标志的优化。
只有在命令⾏上设置-O或其他等级的优化选项时,才会启⽤⼤多数优化。 否则,即使指定了单独的优化标志,它们也会被禁⽤。
根据⽬标和GCC的配置⽅式,可以在每个-O级别启⽤略有不同的优化集。
-O、-O1:优化编译需要更多时间,并且⼤型函数需要更多内存。使⽤-O选项,编译器会尝试减⼩代码尺⼨减少执⾏时间,不执⾏任何需要⼤量编译时间的优化。
-O选项打开了如下优化标志:
-fauto-inc-dec -fbranch-count-reg -fcombine-stack-adjustments -fcompare-elim -fcprop-registers -fdce -fdefer-pop
-fdelayed-branch -fd -fforward-propagate -fguess-branch-probability -fif-conversion2 -fif-conversion
-finline-functions-called-once -fipa-pure-const -fipa-profile -fipa-reference -fmerge-constants -fmove-loop-invariants
-fshrink-wrap -fsplit-wide-types -ftree-bit-ccp -ftree-ccp -fssa-phiopt -ftree-ch -ftree-copy-prop -ftree-copyrename -ftree-dce
-ftree-dominator-opts -ftree-d -ftree-forwprop -ftree-fre -ftree-phiprop -ftree-sink -ftree-slsr -ftree-sra -ftree-pta
关于国庆手抄报>哆啦a梦怎么画-ftree-ter -funit-at-a-time
-O2:相对-O优化更多。 GCC⼏乎执⾏所有⽀持的优化,但不涉及空速权衡。 与-O相⽐,此选项增加了编译时间和⽣成代码的性能。
-O2除了打开所有-O指定的优化标志,还打开了如下优化标志:
-fthread-jumps
-falign-functions  -falign-jumps -falign-loops  -falign-labels -fcaller-saves -fcrossjumping -fc-follow-jumps
-fc-skip-blocks -fdelete-null-pointer-checks -fdevirtualize -fdevirtualize-speculatively -fexpensive-optimizations -fgc
-fgc-lm -fhoist-adjacent-loads -finline-small-functions -findirect-inlining -fipa-cp -fipa-cp-alignment -fipa-sra -fipa-icf
-fisolate-erroneous-paths-dereference -flra-remat -foptimize-sibling-calls -foptimize-strlen -fpartial-inlining -fpeephole2
-freorder-blocks -freorder-blocks-and-partition -freorder-functions -frerun-c-after-loop -fsched-inter
block  -fsched-spec -fschedule-insns  -fschedule-insns2 -fstrict-aliasing -fstrict-overflow -ftree-builtin-call-dce -ftree-switch-conversion
-ftree-tail-merge -ftree-pre -ftree-vrp -fipa-ra
战车怎么折-O3:相对-O2优化更多。
-O3除了打开所有-O2指定的优化标志,还打开了如下优化标志:
入党的原因-finline-functions, -funswitch-loops,
钟立行-fpredictive-commoning, -fgc-after-reload, -ftree-loop-vectorize, -ftree-loop-distribute-patterns, -ftree-slp-vectorize,
-fvect-cost-model, -ftree-partial-pre and -fipa-cp-clone
-O0:减少编译时间并使调试可以产⽣预期的结果,这也是默认的优化等级。
-Os:优化尺⼨。 -Os启⽤所有通常不会增加代码⼤⼩的-O2优化。 它还执⾏旨在减少代码⼤⼩的进⼀步优化。
-
女生节Os关闭如下优化标志:
-falign-functions  -falign-jumps  -falign-loops -falign-labels  -freorder-blocks
-freorder-blocks-and-partition -fprefetch-loop-arrays
-Ofast:⽆视严格的标准合规性。 -Ofast启⽤所有-O3优化。 它还打开并⾮对所有符合标准的程序有效的优化。 它打开
-ffast-math和Fortran特定的-fno-protect-parens和-fstack-arrays。
-Og:优化调试体验。 -Og启⽤不会⼲扰调试的优化。 它是标准编辑 - 编译 - 调试周期可以选择的优化级别,提供合理的优化级别,同时保持快速编译和良好的调试体验。
如果使⽤多个-O选项(包含或不包含级别编号),则最后⼀个选项是有效的选项。

本文发布于:2023-06-15 02:46:18,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1038976.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:优化   编译   标志   选项   时间   调试   语句
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图