您好,登錄后才能下訂單哦!
這篇文章給大家介紹如何理解Wind River Diab,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
重要的編譯器特性和擴展
■大量編譯器控件和選項,使編譯器操作和代碼生成更加靈活
■大量針對嵌入式設備開發者的功能和擴展
■針對x86系列的每種處理器分別定制的優化和功能
■廣泛的編譯時檢查,以檢測可疑和不可移植的結構
■強大的分析能力,定位代碼瓶頸。分析信息還可以自動用作對編譯器的反饋,從而實現更積極的優化
■C++模板、異常和運行時類型信息
高性能優化
各種各樣的優化,其中一些是Diab編譯器獨有的,可以產生更加快速緊湊的代碼。特殊的優化包括出色的過程間寄存器分配、內聯和可達性分析。優化分為三類:局部、函數級和程序級
■代碼塊內的局部優化
常量折疊 Constant folding
整除優化 Integer divide optimization
局部公共子表達式消元 Local common sub-expression elimination
局部強度折減 Local strength reduction
輕微轉換 Minor transformations
窺孔優化 Peep-hole optimizations
Switch優化 Switch optimizations
■函數內的全局優化
自動遞增/遞減優化 Auto increment/decrement optimizations
自動寄存器分配 Automatic register allocation
復雜分支優化 Complex branch optimization
條件代碼優化 Condition code optimization
常量傳播 Constant propagation
死碼消除 Dead code elimination
延遲分支優化 Delayed branches optimization
延遲寄存器保存 Delayed register saving
出入口代碼消除 Entry/exit code removal
擴展優化 Extend optimization
全局公共子表達式消元 Global common sub-expression elimination
全局變量存儲延遲 Global variable store delay
生存周期分析(著色) Lifetime analysis (coloring)
鏈接寄存器優化 Link register optimization
循環倒計時優化 Loop count-down optimization
循環不變量代碼移動 Loop invariant code motion
循環靜態變量優化 Loop statics optimization
循環強度縮小 Loop strength reduction
循環展開 Loop unrolling
內存讀寫優化 Memory read/write optimizations
重新排序代碼調度 Reordering code scheduling
重啟優化 Restart optimization
支鏈優化 Branch-chain optimization
空間優化 Space optimization
拆分優化 Split optimization
寄存器的結構體和位域成員 Structure and bit-field member to registers
尾遞歸 Tail recursion
尾部挑戰優化 Tail jump optimization
未定義變量傳播 Undefined variable propagation
未使用賦值刪除 Unused assignment deletion
變量位置優化 Variable location optimization
變量傳播 Variable propagation
■ 函數間全局優化
參數地址優化 Argument address optimization
函數內聯 Function inlining
粘合函數優化 Glue function optimization
程序間優化 Interprocedural optimizations
文字合成優化 Literal synthesis optimization
局部數據區優化 Local data area optimization
分析反饋優化 Profiling feedback optimization
移植性
■編譯器實現了ANSI C++標準(ISO/IEC FDIS 14882),包括異常、模板和運行時類型信息(RTTI)
■對于C模塊,編譯器完全符合ANSI X3.159-1989標準(即ANSI C),并帶有與其它編譯器兼容的擴展,以簡化Legacy代碼的移植
■標準C程序可以用嚴格的ANSI選項編譯,該選項關閉擴展并將語言簡化為標準核心。或者,可以根據需要使用擴展來逐步升級程序
■產生完全相同的二進制輸出,與Host平臺無關
關于如何理解Wind River Diab就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。