是否可以从汇编文件中获取LLVM-IR



i使用命令:

编译.S文件
clang-8 -c funcs.s -o funcs.o -emit-llvm

我发现,该.o文件是以ELF格式生成的。期望我看到LLVM-IR格式(在结果文件的开头中带有" BC"字符(。

似乎,clang忽略了" -emit-llvm"标志。

您的问题与从根本上不同,是否可以将汇编语言转换为llvm ir,优化它,然后将其重新编译为其他体系结构?。

ASM源和二进制可执行文件/对象文件基本上等于此问题。您仍在尝试将LLVM-IR反复编译。这很难,我不知道是否存在分解器。

似乎,clang忽略了" -emit-llvm"标志。

不,它并没有影响您要求其执行操作的任何步骤。

您要求编译器编译为.o,因此这样做。

如果输入是.c,并且输出A .s,则可以发射LLVM-IR,但是在这种情况下,LLVM-IR并不是将.s组装到.o的过程的一部分。p>因此,在clang运行时,该程序的LLVM-ir表示不存在,因此没有任何要发射的。

最新更新