Is it possible to get LLVM-IR from Assembly file?

时间:2019-05-15 08:42:01

标签: assembly clang llvm llvm-ir

I compiled .S file using command:

clang-8 -c funcs.s -o funcs.o -emit-llvm

I found, that .o file was generated in ELF format. I was expected to see llvm-ir format (with "BC" characters at the beginning of resulting file).

Seems, Clang ignores "-emit-llvm" flag.

1 个答案:

答案 0 :(得分:2)

您的问题与Is it possible to translate an assembly language to LLVM IR, optimize it and then recompile it to a different architecture?根本没有不同。

asm源代码和二进制可执行文件/目标文件基本上等效于此问题。您仍在尝试将其反编译为LLVM-IR。这很难,而且我不知道是否存在反编译器。

  

似乎,Clang忽略了“ -emit-llvm”标志。

不,它只是不影响您要求执行的操作中涉及的任何步骤。

您要求编译器将其编译为.o

如果输入为.c,而输出为.s,则它可以发出LLVM-IR,但是在这种情况下LLVM-IR并不是组装过程的一部分从.s.o

因此,clang运行时不存在该程序的LLVM-IR表示,因此没有任何内容可发送。