Optimization 为什么优化没有通过';没有记忆就不能工作吗?

Optimization 为什么优化没有通过';没有记忆就不能工作吗?,optimization,llvm,bytecode,Optimization,Llvm,Bytecode,为什么我必须在字节码优化中执行这个mem2reg过程,以获得另一个优化过程的结果?mem2reg有什么用 opt -dce myfile.bc 在这种情况下,输出代码中没有任何更改 opt -mem2reg -dce myfile.bc 在第二种情况下,我对输出代码进行了更改 opt -mem2reg -dce myfile.bc 编辑: LLVR IR仍然是SSa的形式,不是吗?使用mem2reg我应该有一个“删减”的SSA表单,对吗 mem2reg pass将LLVM IR的非SSA形

为什么我必须在字节码优化中执行这个mem2reg过程,以获得另一个优化过程的结果?mem2reg有什么用

opt -dce myfile.bc
在这种情况下,输出代码中没有任何更改

opt -mem2reg -dce myfile.bc
在第二种情况下,我对输出代码进行了更改

opt -mem2reg -dce myfile.bc
编辑:
LLVR IR仍然是SSa的形式,不是吗?使用mem2reg我应该有一个“删减”的SSA表单,对吗

mem2reg pass将LLVM IR的非SSA形式转换为SSA形式,提高加载和存储,将分配的值堆栈到“寄存器”(SSA值)。许多LLVM优化过程在SSA形式的代码上运行,因此在非SSA形式下很可能是无操作的IR


这里有更多的信息:

mem2reg-pass将LLVM IR的非SSA形式转换为SSA形式,将加载和存储提升到堆栈分配值到“寄存器”(SSA值)。许多LLVM优化过程在SSA形式的代码上运行,因此在非SSA形式下很可能是无操作的IR


这里有更多的信息:

那么,代码是什么样子的?(试着运行
llvmdis
或任何它的名字。)一种优化经常会启用另一种优化。是的,我知道这一点,但我的问题是mem2reg是什么?它做了什么样的优化?那么,代码是什么样子的?(试着运行
llvmdis
或任何它的名字。)一种优化经常会启用另一种优化。是的,我知道这一点,但我的问题是mem2reg是什么?它做什么样的优化?对不起,但是LLVR IR仍然是SSa形式,不是吗?这样我应该有一个“删减”的SSA表单,对吗?@Nicola-LLVM-IR可能是SSA表单,现在可能是(因为在LLVM世界中内存不是SSA)。所以,你可以很容易地使用非SSA LLVM IR-使用alloca的加载和存储。对不起,LLVR IR仍然是SSA形式,不是吗?这样我应该有一个“删减”的SSA表单,对吗?@Nicola-LLVM-IR可能是SSA表单,现在可能是(因为在LLVM世界中内存不是SSA)。因此,您可以使用alloca的加载和存储轻松实现非SSA LLVM IR。