您好,我必须为编译器课程解析一些LLVM IR代码。我对LLVM非常陌生。我的计算机上装有clang和LLVM,并且在编译一个简单的C程序时:
#include <stdio.h>
int main(int argc, char *argv[])
{
for (int i = 0; i < 10; i++) {
printf("Stuff!\n");
}
return 0;
}
使用命令:clang -cc1 test.c -emit-llvm
我得到带有我认为是隐式块的llvm IR:
; <label>:4 ; preds = %9, %0
但是我的解析器还需要使用文本标签处理llvm IR:
for.cond: ; preds = %for.inc, %entry
我的问题是我不知道如何生成这样的IR,希望有人向我展示如何。我尝试使用Google之类的工具,但找不到合适的信息。提前致谢。
使用此站点并选中Show detailed bytecode analysis
接受的答案不再有效。这也不是实现上述目标的好方法。如果有人像我一样偶然发现了这个问题,我会提供答案。
clang-8 -S -fno-discard-value-names -emit-llvm test.c