gpt4 book ai didi

llvm - LLVM IR 上的 Phi 指令

转载 作者:行者123 更新时间:2023-12-01 11:31:08 26 4
gpt4 key购买 nike

有什么方法可以获取 .ll 文件的“phi”指令吗?

对于以下代码部分,我没有得到任何“phi”指令在字节码上:

int y, z;
y = f;

if (y < 0)
z = y + 1;
else
z = y + 2;
return z;

我知道我可以使用传递“-mem2reg”,但我希望,如果可能的话,能够在字节码上看到 phi 指令。

最佳答案

LLVM 中的虚拟寄存器是 SSA 形式,而内存单元不是。对于 Clang 等 LLVM 前端,不必关心 SSA 形式很方便。如果我使用 Clang 将 C 代码编译为 LLVM IR,则所有变量都分配在堆栈上。不需要 SSA 形式,因为 z 位于内存中。

如果你使用

opt -mem2reg -S example.ll -o example-opt.ll

正如前面评论中所建议的那样,z 不再分配在堆栈上,而是分配在虚拟寄存器中。因此,您还将看到一个 phi 指令,用于您的示例以维护 SSA 形式。

关于llvm - LLVM IR 上的 Phi 指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31836264/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com