即時編譯器優化技術。

2021-08-19 15:50:14 字數 974 閱讀 4669

型別

優化技術

編譯器策略

延遲編譯

分層編譯

棧上替換

延遲優化

程式依賴圖表示

基於效能監控的優化技術

樂觀空值斷言

樂觀型別斷言

樂觀型別增強

樂觀陣列長度增強

裁剪未被選擇的分支

樂觀的多型內聯

分支頻率**

呼叫頻率**

基於證據的優化技術

精確型別推斷

記憶體值推斷

記憶體值跟蹤

常量拆疊

重組操作符退化

空值檢查消除

型別檢測退化

型別檢測消除

代數化簡

公共子表示式消除

資料流敏感重寫

條件常量傳播

基於流承載的型別縮減轉換

無用**清除

語言相關的優化技術

型別繼承關係分析

去虛擬機器化

符號常量傳播

自動裝箱傳播

逃逸分析

鎖清除鎖膨脹

清除反射

記憶體及**位置變換

表示式提公升

表示式下沉

冗餘儲存消除

相鄰儲存合併

交匯點分離

迴圈變換

迴圈展開

迴圈剝離

安全點消除

迭代範圍分離

範圍檢查消除

迴圈向量化

全域性**調整

內聯全域性**外提

基於熱度的**布局

switch調整

控制流圖變換

本地**編排

本地**封包

延遲槽填充

著色圖暫存器分配

線性掃瞄暫存器分配

複寫聚合

常量**

複寫移除

位址模式匹配

指令窺孔優化

基於確定有限狀態機的**生成

編譯器優化

常量摺疊 a 1 2 由於結果可預見,編譯器直接生成a 3 常量傳播a 1 若後續 沒有更改a,則編譯器將a直接用其值1代替 減少變數 對於x和y的比較,可以轉換成if i j x i2 y j 2 if x y 複寫傳播 類似於常量長傳,不過傳播的是變數 若後續 未修改a的值,則編譯器用m代替a ...

編譯器優化 乘法優化

由這個想到的 31乘以某個數能不能寫成這個數乘以2的次冪 再減去這個數。用數學語言表達一下就是 設這個數為x 31 x x 2 n x 這個等式是否存在,如果存在,求n的值 那我們計算一下,31 2 n 1 得2 n 32 得n 5 也就是說存在那麼乙個n使得,31乘以某個數的結果等於這個數乘以2的...

編譯器優化問題

今天遇一程式,unsigned char a,b,c a 0x89 b a 1 c a b 在單步除錯的時候,觀察數值發現b的值為0,分析b的值應當為0x44,百思不得其解,通過檢視其彙編語句,發現問題所在。彙編語句如下 mov r7,tmod 0x89 mov a,r7 clr c rrc a a...