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