是否有内置的LLVM传递来检查生成的IR是否为SSA格式?
例如:如果使用mem2reg选项编译IR,我们将以SSA形式获得IR。我们可以检查我们的通行证,是否使用了mem2reg?
答案 0 :(得分:0)
请参阅llvm::verifyModule
,llvm::verifyFunction
或llvm::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