我一直在试图弄清楚如何基本上采用 LLVM IR 代码的一部分并在 C 中内联执行它。我希望能够内联 IR 代码,这样就不需要虚拟函数调用(在同一可以使用_asm{}
) 内联汇编代码的方式。请参见以下示例:
要执行的 LLVM IR 代码:
define i64 @square(i64 %x){
%y = mul i64 %x, %x
ret i64 %y
}
C程序:
for(i = 0; i < length; i++){
//run LLVM IR Code here
}
我知道我可以在使用中读取 IR 代码parseIRFile()
并创建一个指向函数的指针,但这不是我想要的,因为需要一个虚拟函数调用。