摘要: 本文主要對(duì)Arm Compiler 6編譯器的優(yōu)化選項(xiàng)進(jìn)行介紹。
關(guān)鍵字:Arm Compiler 6、編譯器、優(yōu)化等級(jí)、鏈接時(shí)優(yōu)化。
1. 代碼優(yōu)化
編譯器在優(yōu)化時(shí)有些可以提高代碼性能,而有些可以減少代碼大小。不同的優(yōu)化通常相互會(huì)有影響。通常情況下,提高代碼性能的方法會(huì)增加代碼大小,而減少代碼大小的方法會(huì)降低性能。例如,編譯器在展開(kāi)小循環(huán)時(shí)會(huì)獲得更高的性能,但會(huì)增加代碼大小。
下面具體介紹一下armclang的優(yōu)化參數(shù)選項(xiàng)。armclang默認(rèn)優(yōu)化級(jí)別是-O0,不執(zhí)行優(yōu)化。
優(yōu)化代碼執(zhí)行性能的參數(shù)選項(xiàng):
-O1|-O2|-O3 :數(shù)字越大代表優(yōu)化等級(jí)越高。
-Ofast:在-O3基礎(chǔ)上進(jìn)行提高性能的所有優(yōu)化,有可能會(huì)違反一些語(yǔ)言標(biāo)準(zhǔn)。
-Omax:在-Ofast基礎(chǔ)上增加鏈接時(shí)優(yōu)化。
優(yōu)化代碼大小的參數(shù)選項(xiàng):
-Os:執(zhí)行代碼優(yōu)化減小代碼大小,同時(shí)一定程度上兼顧代碼執(zhí)行性能。
-Oz:執(zhí)行代碼優(yōu)化減小代碼大小。
-Omin:在-Oz基礎(chǔ)上,利用鏈接時(shí)優(yōu)化刪除未使用的代碼,同時(shí)嘗試優(yōu)化全局內(nèi)存訪問(wèn)。在編譯C++代碼時(shí)會(huì)刪除虛函數(shù)。
2. 鏈接時(shí)優(yōu)化
armlink的優(yōu)化級(jí)別與armclang的優(yōu)化級(jí)別相同。
單獨(dú)在armlink時(shí)使用鏈接時(shí)優(yōu)化,可以使用與armlink --lto_level來(lái)選擇相應(yīng)的連接時(shí)優(yōu)化級(jí)別。
當(dāng)然在編寫(xiě)代碼時(shí),也可以減少代碼大小,提高執(zhí)行效率。例如前面文章提到的,優(yōu)化循環(huán)終止條件,展開(kāi)循環(huán),減少對(duì)象和庫(kù)的調(diào)試信息,使用內(nèi)聯(lián)函數(shù)等等。
來(lái)源:《Arm? Compiler for Embedded User Guide Version 6.18》
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
關(guān)于億道電子
億道電子技術(shù)有限公司(英文名稱:Emdoor Electronics Technology Co.,Ltd)是國(guó)內(nèi)資深的研發(fā)工具軟件提供商,公司成立于 2002 年,面向中國(guó)廣大的制造業(yè)客戶提供研發(fā)、設(shè)計(jì)、管理過(guò)程中使用的各種軟件開(kāi)發(fā)工具,致力于幫助客戶提高研發(fā)管理效率、縮短產(chǎn)品設(shè)計(jì)周期,提升產(chǎn)品可靠性。
20 年來(lái),先后與 Altium、ARM、Ansys、QT、Adobe、Visu-IT、Minitab、Testplant、EPLAN、HighTec、GreenHills、PLS、Ashling、MSC Software 、Autodesk、Source Insight、TeamEDA、MicroFocus等多家全球知名公司建立戰(zhàn)略合作伙伴關(guān)系,并作為他們?cè)谥袊?guó)區(qū)的主要分銷合作伙伴服務(wù)了數(shù)千家中國(guó)本土客戶,為客戶提供從芯片級(jí)開(kāi)發(fā)工具、EDA 設(shè)計(jì)工具、軟件編譯以及測(cè)試工具、結(jié)構(gòu)設(shè)計(jì)工具、仿真工具、電氣設(shè)計(jì)工具、以及嵌入式 GUI 工具等等。億道電子憑借多年的經(jīng)驗(yàn)積累,真正的幫助客戶實(shí)現(xiàn)了讓研發(fā)更簡(jiǎn)單、更可靠、更高效的目標(biāo)。
歡迎關(guān)注“億道電子”公眾號(hào)
了解更多研發(fā)工具軟件知識(shí)