从LLVM获取“最小” SSA

Kos*_*tya 5 llvm ssa llvm-ir

LLVM的opt -S -mem2reg过程产生了所谓的“修剪” SSA,即删除了所有无效phi函数的形式。我想将这些phi指令保留在IR中,以获得“最小” SSA,但是我没有找到简单的方法来做到这一点。

我注定要从头开始实施整个SSA构建算法,还是有一种方法可以使用现有工具来实现?

Cha*_*uth 2

LLVM 不支持形成除修剪的 SSA 形式以外的任何形式,并且不太可能发展这样的机制。在进行 phi 放置时,我们实际上甚至没有做综合这些信息的工作。