如何使用文本标签将clang编译为LLVM IR,以实现简单功能

问题描述 投票:0回答:2

您好,我必须为编译器课程解析一些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之类的工具,但找不到合适的信息。提前致谢。

clang llvm llvm-ir
2个回答
1
投票

使用此站点并选中Show detailed bytecode analysis

http://ellcc.org/demo/index.cgi


0
投票

接受的答案不再有效。这也不是实现上述目标的好方法。如果有人像我一样偶然发现了这个问题,我会提供答案。

clang-8 -S -fno-discard-value-names -emit-llvm test.c 
© www.soinside.com 2019 - 2024. All rights reserved.