型別
優化技術
編譯器策略
延遲編譯
分層編譯
棧上替換
延遲優化
程式依賴圖表示
基於效能監控的優化技術
樂觀空值斷言
樂觀型別斷言
樂觀型別增強
樂觀陣列長度增強
裁剪未被選擇的分支
樂觀的多型內聯
分支頻率**
呼叫頻率**
基於證據的優化技術
精確型別推斷
記憶體值推斷
記憶體值跟蹤
常量拆疊
重組操作符退化
空值檢查消除
型別檢測退化
型別檢測消除
代數化簡
公共子表示式消除
資料流敏感重寫
條件常量傳播
基於流承載的型別縮減轉換
無用**清除
語言相關的優化技術
型別繼承關係分析
去虛擬機器化
符號常量傳播
自動裝箱傳播
逃逸分析
鎖清除鎖膨脹
清除反射
記憶體及**位置變換
表示式提公升
表示式下沉
冗餘儲存消除
相鄰儲存合併
交匯點分離
迴圈變換
迴圈展開
迴圈剝離
安全點消除
迭代範圍分離
範圍檢查消除
迴圈向量化
全域性**調整
內聯全域性**外提
基於熱度的**布局
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...