![](/img/trans.png)
[英]llc: Too many positional arguments specified (error generating assembly from llvm-ir)
[英]Is it possible to get LLVM-IR from Assembly file?
我使用命令編譯了 .S 文件:
clang-8 -c funcs.s -o funcs.o -emit-llvm
我發現,.o 文件是以 ELF 格式生成的。 我預計會看到 llvm-ir 格式(在結果文件的開頭帶有“BC”字符)。
似乎,Clang 忽略了“-emit-llvm”標志。
您的問題與Is it possible to translate an assembly language to LLVM IR, 優化它,然后將其重新編譯為不同的體系結構並沒有根本的不同? .
asm 源代碼和二進制可執行文件/目標文件對於這個問題基本上是等價的。 您仍在嘗試反編譯為 LLVM-IR。 這很難,我不知道是否存在反編譯器。
似乎,Clang 忽略了“-emit-llvm”標志。
不,它只是不影響您要求它執行的操作中涉及的任何步驟。
您要求編譯器編譯為.o
,所以它這樣做了。
如果輸入是.c
,輸出是.s
,它就可以發出 LLVM-IR,但在這種情況下,LLVM-IR 不是將.s
組裝到.o
的過程的一部分。
因此,當clang
運行時,程序的 LLVM-IR 表示不存在,所以沒有任何東西可以發出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.