2013-05-08 25 views
4

我見過許多優化縮寫詞,例如。是否有包含LLVM優化列表的網頁?

dce, inline, constmerge, constprop, dse, licm, gvn, instcombine, mem2reg, scalarrepl

雖然我可以推斷dce是死代碼消除,我有很多其他的麻煩。

是否有一個帶有描述的LLVM優化列表的網頁,它們究竟是什麼?

親切的問候, Roay

回答

4

LLVM的文檔包含的analysis and transformation passes列表。你列出的那些都屬於轉換通行證。詳細闡述有時簡短的文檔:

  • inline內聯函數(duh!)。
  • constmerge去重複相同的常數。
  • constprop確實簡單常量合併(僅使用常量參數指令)
  • dse消除明顯無意義存儲器寫(的a = 1; a = 2;等效 - >a = 2;)。
  • licm,循環不變代碼運動,在循環的每次迭代中移動相同的計算,以便它們只執行一次。
  • GVN是global value numbering的常用縮寫。
  • instcombine用單個等效指令(例如相當於a + 1 + 1a + 2)取代多個指令。
  • mem2reg將堆棧分配轉換爲SSA寄存器。如果前端只需通過alloca爲當地人分配空間並將其用作指針,則前端就簡單多了,但優化傳遞可用於SSA,因此此傳遞將盡可能多的allocas轉換爲SSA。
  • scalarrepl用各個成員替換聚合類型(例如,用兩個i32成員來轉換結構對象,使用兩個i32寄存器)。
+0

這正是我一直在尋找的!我只強調這個鏈接。 – 2013-05-08 12:38:46