4
我見過許多優化縮寫詞,例如。是否有包含LLVM優化列表的網頁?
dce, inline, constmerge, constprop, dse, licm, gvn, instcombine, mem2reg, scalarrepl
雖然我可以推斷dce
是死代碼消除,我有很多其他的麻煩。
是否有一個帶有描述的LLVM優化列表的網頁,它們究竟是什麼?
親切的問候, Roay
我見過許多優化縮寫詞,例如。是否有包含LLVM優化列表的網頁?
dce, inline, constmerge, constprop, dse, licm, gvn, instcombine, mem2reg, scalarrepl
雖然我可以推斷dce
是死代碼消除,我有很多其他的麻煩。
是否有一個帶有描述的LLVM優化列表的網頁,它們究竟是什麼?
親切的問候, Roay
LLVM的文檔包含的analysis and transformation passes列表。你列出的那些都屬於轉換通行證。詳細闡述有時簡短的文檔:
inline
內聯函數(duh!)。constmerge
去重複相同的常數。constprop
確實簡單常量合併(僅使用常量參數指令)dse
消除明顯無意義存儲器寫(的a = 1; a = 2;
等效 - >a = 2;
)。licm
,循環不變代碼運動,在循環的每次迭代中移動相同的計算,以便它們只執行一次。instcombine
用單個等效指令(例如相當於a + 1 + 1
→a + 2
)取代多個指令。mem2reg
將堆棧分配轉換爲SSA寄存器。如果前端只需通過alloca
爲當地人分配空間並將其用作指針,則前端就簡單多了,但優化傳遞可用於SSA,因此此傳遞將盡可能多的alloca
s轉換爲SSA。scalarrepl
用各個成員替換聚合類型(例如,用兩個i32成員來轉換結構對象,使用兩個i32寄存器)。
這正是我一直在尋找的!我只強調這個鏈接。 – 2013-05-08 12:38:46