麻豆一区二区三区蜜桃免费_中文字幕Va一区二区三区 _国产成人综合久久二区_丰满多毛的大隂户毛茸茸_国产麻豆剧果冻传媒免费老狼_无码人妻精品一区二区三区久久久 _亚洲中文无码精品卡通_蜜臀亚洲AV永久无码精品老司机

【方輝專欄】ARM嵌入式編譯器(九) 鏈接時(shí)優(yōu)化介紹
發(fā)布時(shí)間:2022-08-29

摘要: 本文主要對(duì)Arm Compiler 6編譯器的鏈接時(shí)優(yōu)化進(jìn)行介紹。

關(guān)鍵字:Arm Compiler 6、編譯器、LTO、鏈接時(shí)優(yōu)化。


1. 鏈接時(shí)優(yōu)化

鏈接時(shí)優(yōu)化是指編譯器在鏈接時(shí)將不同文件的代碼放在一起進(jìn)行優(yōu)化,以獲得更多的優(yōu)化機(jī)會(huì)。

通常情況下,編譯器僅會(huì)獨(dú)立的優(yōu)化每個(gè)源文件,將源代碼轉(zhuǎn)換為目標(biāo)文件。在鏈接時(shí),鏈接器通過(guò)解析符號(hào)引用和重定位將所有的目標(biāo)文件合成一個(gè)可執(zhí)行文件。單獨(dú)編譯源文件時(shí)有可能會(huì)喪失一些優(yōu)化機(jī)會(huì),例如跨模塊內(nèi)聯(lián)。

當(dāng)啟用鏈接時(shí)優(yōu)化編譯,編譯器會(huì)將每個(gè)文件轉(zhuǎn)換為L(zhǎng)LVM位碼的中間形式。鏈接器將所有包含位碼的文件收集到一起,并發(fā)送到鏈接時(shí)優(yōu)化器,這樣可以根據(jù)模塊中間依賴關(guān)系的進(jìn)行優(yōu)化,優(yōu)化完畢之后再發(fā)回鏈接器,鏈接器再創(chuàng)建一個(gè)可執(zhí)行文件。



2. 啟用鏈接時(shí)優(yōu)化

要啟用鏈接時(shí)優(yōu)化 LTO,就需要在編譯(armclang)和鏈接(armlink)時(shí)都需要啟用。

在編譯時(shí),使用armclang選項(xiàng)-flto生成適合 LTO 的 ELF 文件.

在鏈接時(shí),使用armlink選項(xiàng)--lto為指定的位碼文件啟用 LTO.


3. 鏈接時(shí)優(yōu)化的限制

armlink ?--partial選項(xiàng)僅適用于ELF 文件。如果鏈接器檢測(cè)到包含位碼的文件,則會(huì)報(bào)錯(cuò)。

Arm 建議僅對(duì)分散文件中不需要精確放置的代碼和數(shù)據(jù)執(zhí)行鏈接時(shí)優(yōu)化。


4. 鏈接時(shí)優(yōu)化舉例

例1:armclang --target=arm-arm-none-eabi -march=armv8-a -flto src1.c src2.c src3.c -o output.axf

在此示例中,由于armclang自動(dòng)調(diào)用armlink ,因此鏈接時(shí)優(yōu)化器具有與armclang相同的優(yōu)化級(jí)別。由于沒(méi)有為armclang指定優(yōu)化級(jí)別,因此它是默認(rèn)優(yōu)化級(jí)別-O0,并且--lto_level=O0.

例2:

armclang --target=arm-arm-none-eabi -march=armv8-a -c src1.c -o src1.o

armclang --target=arm-arm-none-eabi -march=armv8-a -c -flto src2.c -o src2.o

armclang --target=arm-arm-none-eabi -march=armv8-a -c -flto src3.c -o src3.o

armlink --lto src1.o src2.o src3.o -o output.axf

在此例中,因?yàn)?armclang和 armlink是分開調(diào)用的,所以它們有獨(dú)立的優(yōu)化級(jí)別。由于沒(méi)有為 armclang或 armlink指定優(yōu)化級(jí)別, 因此 armclang具有默認(rèn)優(yōu)化級(jí)別 -O0,鏈接時(shí)優(yōu)化器具有默認(rèn)優(yōu)化級(jí)別 --lto_level=O2。


來(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ò)程中使用的各種軟件開發(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í)開發(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í)