我正在编写一个pass,将指令放入LLVM中,这些指令在归档文件中定义,然后在执行过程中从IR中调用。我需要用lli解释器来做这个。我使用的命令是:
lli-8 -附加存档=“/build/rtlib/mylib.a”-强制解释器input.ll
我给我的图书馆打电话的IR:
define protected i32 @main(i32, i8**) #0 !dbg !28 {
entry:
call void @func_entry(i32 16385, i32 1)
.
.
.
declare void @func_entry(i32, i32)LLVM错误:尝试执行一个未知的外部函数,该函数在IR文件的底部声明。
发布于 2022-08-11 06:26:50
如果.a是LLVM-IR的归档文件,那么使用llvm-link或llvm将它们与输入链接起来,并在解释器中运行。
否则,带有解释器的LLI将尝试使用FFI调用外部函数。您的lli-8是否启用FFI?.a文件是否定义了一个名为"func_entry“而不是"_Zfunc_entry”或"_func_entry“的符号?可以使用.a或llvm-nm检查在您的nm文件中定义的符号。
https://stackoverflow.com/questions/73271650
复制相似问题