是否有任何LLVM传递来检查LLVM IR是否为SSA形式?

时间:2017-09-05 04:50:23

标签: llvm llvm-ir

是否有内置的LLVM传递来检查生成的IR是否为SSA格式?

例如:如果使用mem2reg选项编译IR,我们将以SSA形式获得IR。我们可以检查我们的通行证,是否使用了mem2reg?

3 个答案:

答案 0 :(得分:0)

请参阅llvm::verifyModulellvm::verifyFunctionllvm::createVerifierPass。 cf http://llvm.org/doxygen/Verifier_8cpp_source.html

另请参阅opt -verify-each选项和PassManagerBuilder的验证*字段。

答案 1 :(得分:0)

我想您想知道正在使用哪个LLVM传递。

在这种情况下,如果您使用的是clang,则可以使用-debug-pass=Arguments-mllvm -debug-pass=Arguemnt运行opt。

答案 2 :(得分:0)

您可以将代码转换为人类可读的.ll,然后尝试查找IR代码中是否有phi节点。假设您有位码

llvm-dis <file.bc> -o file.ll cat file.ll | grep phi