为什么我必须在字节码优化中执行此mem2reg传递以获得另一个优化传递结果? mem2reg有什么用?
opt -dce myfile.bc
在这种情况下,我没有更改输出代码
opt -mem2reg -dce myfile.bc
在第二种情况下,我对输出代码进行了更改
编辑: LLVR IR仍然是SSa形式,不是吗?使用mem2reg我应该有一个“修剪”的SSA表格,是吗?
答案 0 :(得分:7)
mem2reg pass将非SSA形式的LLVM IR转换为SSA形式,将堆栈分配值的加载和存储提升到“寄存器”(SSA值)。许多LLVM优化传递都以SSA形式运行,因此很可能是非SSA形式的无操作IR。
此处提供了更多信息:http://llvm.org/docs/Passes.html#mem2reg-promote-memory-to-register