溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何理解Wind River Diab

發(fā)布時(shí)間:2021-11-23 14:25:58 來源:億速云 閱讀:288 作者:柒染 欄目:互聯(lián)網(wǎng)科技

這篇文章給大家介紹如何理解Wind River Diab,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

Wind River Diab編譯器是一款不依賴于操作系統(tǒng)的工具套件,內(nèi)含C/C++編譯器(compiler)、匯編器(assembler)、鏈接器(linker)、指令集模擬器(instruction-set simulator)以及ANSI C和C++函數(shù)庫(library)等。Wind River Diab編譯器基于DIAB編譯器技術(shù)設(shè)計(jì),這種技術(shù)被普遍運(yùn)用于各種要求極為嚴(yán)格、負(fù)責(zé)執(zhí)行關(guān)鍵任務(wù)的應(yīng)用上,在工業(yè)自動化、國防航空、汽車內(nèi)部控制等相關(guān)系統(tǒng)中有著大量的應(yīng)用實(shí)例。  

Diab編譯器套件包含了高性能的C和C++工具,可以提供最先進(jìn)的優(yōu)化技術(shù),可以快速創(chuàng)建更可靠的代碼。Diab編譯器及其它工具具有更快的執(zhí)行速度,并提供內(nèi)置的可定制檢測功能,可用于更早的發(fā)現(xiàn)代碼問題。
通過強(qiáng)大的鏈接器,更好的組織內(nèi)存中的代碼與數(shù)據(jù);并提供數(shù)百個(gè)命令行選項(xiàng)和編譯指令,可以滿足任何設(shè)備的軟件項(xiàng)目的定制需求。還提供了特殊選項(xiàng),專門用于其它工具的兼容和代碼的移植。

重要的編譯器特性和擴(kuò)展

■大量編譯器控件和選項(xiàng),使編譯器操作和代碼生成更加靈活

■大量針對嵌入式設(shè)備開發(fā)者的功能和擴(kuò)展

■針對x86系列的每種處理器分別定制的優(yōu)化和功能

■廣泛的編譯時(shí)檢查,以檢測可疑和不可移植的結(jié)構(gòu)

■強(qiáng)大的分析能力,定位代碼瓶頸。分析信息還可以自動用作對編譯器的反饋,從而實(shí)現(xiàn)更積極的優(yōu)化

■C++模板、異常和運(yùn)行時(shí)類型信息

高性能優(yōu)化

各種各樣的優(yōu)化,其中一些是Diab編譯器獨(dú)有的,可以產(chǎn)生更加快速緊湊的代碼。特殊的優(yōu)化包括出色的過程間寄存器分配、內(nèi)聯(lián)和可達(dá)性分析。優(yōu)化分為三類:局部、函數(shù)級和程序級

■代碼塊內(nèi)的局部優(yōu)化

  • 常量折疊 Constant folding

  • 整除優(yōu)化 Integer divide optimization

  • 局部公共子表達(dá)式消元 Local common sub-expression elimination

  • 局部強(qiáng)度折減 Local strength reduction

  • 輕微轉(zhuǎn)換 Minor transformations

  • 窺孔優(yōu)化 Peep-hole optimizations

  • Switch優(yōu)化 Switch optimizations

■函數(shù)內(nèi)的全局優(yōu)化

  • 自動遞增/遞減優(yōu)化 Auto increment/decrement optimizations

  • 自動寄存器分配 Automatic register allocation

  • 復(fù)雜分支優(yōu)化 Complex branch optimization

  • 條件代碼優(yōu)化 Condition code optimization

  • 常量傳播 Constant propagation

  • 死碼消除 Dead code elimination

  • 延遲分支優(yōu)化 Delayed branches optimization

  • 延遲寄存器保存 Delayed register saving

  • 出入口代碼消除 Entry/exit code removal

  • 擴(kuò)展優(yōu)化 Extend optimization

  • 全局公共子表達(dá)式消元 Global common sub-expression elimination

  • 全局變量存儲延遲 Global variable store delay

  • 生存周期分析(著色) Lifetime analysis (coloring)

  • 鏈接寄存器優(yōu)化 Link register optimization

  • 循環(huán)倒計(jì)時(shí)優(yōu)化 Loop count-down optimization

  • 循環(huán)不變量代碼移動 Loop invariant code motion

  • 循環(huán)靜態(tài)變量優(yōu)化 Loop statics optimization

  • 循環(huán)強(qiáng)度縮小 Loop strength reduction

  • 循環(huán)展開 Loop unrolling

  • 內(nèi)存讀寫優(yōu)化 Memory read/write optimizations

  • 重新排序代碼調(diào)度 Reordering code scheduling

  • 重啟優(yōu)化 Restart optimization

  • 支鏈優(yōu)化 Branch-chain optimization

  • 空間優(yōu)化 Space optimization

  • 拆分優(yōu)化 Split optimization

  • 寄存器的結(jié)構(gòu)體和位域成員 Structure and bit-field member to registers

  • 尾遞歸 Tail recursion

  • 尾部挑戰(zhàn)優(yōu)化 Tail jump optimization

  • 未定義變量傳播 Undefined variable propagation

  • 未使用賦值刪除 Unused assignment deletion

  • 變量位置優(yōu)化 Variable location optimization

  • 變量傳播 Variable propagation

■ 函數(shù)間全局優(yōu)化

  • 參數(shù)地址優(yōu)化 Argument address optimization

  • 函數(shù)內(nèi)聯(lián) Function inlining

  • 粘合函數(shù)優(yōu)化 Glue function optimization

  • 程序間優(yōu)化 Interprocedural optimizations

  • 文字合成優(yōu)化 Literal synthesis optimization

  • 局部數(shù)據(jù)區(qū)優(yōu)化 Local data area optimization

  • 分析反饋優(yōu)化 Profiling feedback optimization

移植性

■編譯器實(shí)現(xiàn)了ANSI C++標(biāo)準(zhǔn)(ISO/IEC FDIS 14882),包括異常、模板和運(yùn)行時(shí)類型信息(RTTI)

■對于C模塊,編譯器完全符合ANSI X3.159-1989標(biāo)準(zhǔn)(即ANSI C),并帶有與其它編譯器兼容的擴(kuò)展,以簡化Legacy代碼的移植

■標(biāo)準(zhǔn)C程序可以用嚴(yán)格的ANSI選項(xiàng)編譯,該選項(xiàng)關(guān)閉擴(kuò)展并將語言簡化為標(biāo)準(zhǔn)核心?;蛘?,可以根據(jù)需要使用擴(kuò)展來逐步升級程序

■產(chǎn)生完全相同的二進(jìn)制輸出,與Host平臺無關(guān)

關(guān)于如何理解Wind River Diab就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI