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

问题描述:

是否有任何内置的LLVM pass来检查生成的IR是否处于SSA格式?是否有任何LLVM传递来检查LLVM IR是否处于SSA形式?

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

+0

即使不是这样,遍历每条指令都很容易,寻找'phi'指令。 – arrowd

llvm::verifyModulellvm::verifyFunction,或llvm::createVerifierPass。 cf http://llvm.org/doxygen/Verifier_8cpp_source.html

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

我想你想知道正在使用哪个LLVM通道。

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