《gcc五分鐘系列》第十二節:編譯期優化選項(三)——O(下)
這節內容有些無聊,只是把O選項相關的文檔翻譯出來。想了解的可以瞭解下,想深入瞭解的可以去看gcc的man手冊。
括號裏面的是我自己的想法,剩下的是gcc的man手冊中關於O選項的翻譯。
-O
-O1 優化。優化編譯將多花費一些時間,還會在編譯大函數的時候消耗更多的內存。
加上-O選項以後,編譯器試圖減少生成可執行文件的大小和運行時間。相比於不加優化將花費大量的編譯時間。
-O選項啓用以下優化器:
-fauto-inc-dec -fcprop-registers -fdce -fdefer-pop -fdelayed-branch
-fdse -fguess-branch-probability -fif-conversion2 -fif-conversion
-fipa-pure-const -fipa-reference -fmerge-constants -fshrink-wrap
-fsplit-wide-types -ftree-builtin-call-dce -ftree-ccp -ftree-ch
-ftree-copyrename -ftree-dce -ftree-dominator-opts -ftree-dse
-ftree-forwprop -ftree-fre -ftree-phiprop -ftree-sra -ftree-pta
-ftree-ter -funit-at-a-time
在那些不會影響調試的設備上,-O選項也會啓動-fomit-frame-pointer優化器。
-O2 更多的優化。GCC將在不需要用空間換取時間的條件下,啓用幾乎所有支持的優化器。與-O選項比較,這個選項雖然增加了編譯的時間,但生成的代碼更加高效了。
-O2選項除了啓用-O選項的所有優化器外,還將啓用以下優化器:
-fthread-jumps
-falign-functions -falign-jumps -falign-loops -falign-labels
-fcaller-saves -fcrossjumping -fcse-follow-jumps -fcse-skip-blocks
-fdelete-null-pointer-checks -fexpensive-optimizations -fgcse
-fgcse-lm -finline-small-functions -findirect-inlining -fipa-sra
-foptimize-sibling-calls -fpeephole2 -fregmove -freorder-blocks
-freorder-functions -frerun-cse-after-loop -fsched-interblock
-fsched-spec -fschedule-insns -fschedule-insns2 -fstrict-aliasing
-fstrict-overflow -ftree-if-to-switch-conversion
-ftree-switch-conversion -ftree-pre -ftree-vrp
-O3 最多的優化。-O3選項啓用-O2的全部優化器,還將啓用以下優化器:
-finline-functions, -funswitch-loops,
-fpredictive-commoning, -fgcse-after-reload, -ftree-vectorize and
-fipa-cp-clone options.
-O0 減少編譯時間並讓調試程序得到期望的結果。這個是默認值。
-Os 空間優化。-Os啓用-O2選項的所有不會增加生成可執行文件大小的優化器外,還會爲減少生成可執行文件的大小做更多的優化。
-Os禁用以下優化器:-falign-functions
-falign-jumps -falign-loops -falign-labels -freorder-blocks
-freorder-blocks-and-partition -fprefetch-loop-arrays
-ftree-vect-loop-version
如果您同時啓用多個-O選項,無論有沒有級別數字,只有最後一個選項有效。
《gcc五分鐘系列》第十二節:編譯期優化選項(三)——O(下)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Linux基本操作命令
wbzjacky
2019-02-24 13:12:38
真實的模擬***綜合實驗
wbzjacky
2019-02-24 13:12:37
三層交換機的HSRP、vlan、端口聚合
wbzjacky
2019-02-24 13:12:37
HSRP和二層交換機的端口聚合、vlan
wbzjacky
2019-02-24 13:12:37
如果同事暗中傷害你,應該怎麼辦?
這個饅頭有餡
2019-02-24 13:59:08
職場中,抱怨越多的員工,越被領導瞧不起!
這個饅頭有餡
2019-02-24 13:59:08
老程序員被裁,應屆生卻能月薪 1.3 萬?這你能忍?
前端高達
2019-02-24 13:48:04
遇到到處蹭吃卻從不請客吃飯的主怎麼辦?
樑軍年
2019-02-24 13:26:35
高標準機房綜合配線安裝
wbzjacky
2019-02-24 13:12:38
IPsec ***實驗
wbzjacky
2019-02-24 13:12:37
CISCO路由AAA的Easy ***
wbzjacky
2019-02-24 13:12:37
CISCO訪問控制列表 企業網絡管理的必殺技
wbzjacky
2019-02-24 13:12:37