簡體   English   中英

是否可以從程序集文件中獲取 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM