1
2
首先,不涉及虚拟函数——C没有这样的概念。我认为你的意思是 间接的 函数调用,即获取一个函数指针并调用它所指向的函数。 简短的回答是 不 ,没有简单的方法可以将LLVM IR嵌入到C中并使其与代码一起编译: see this related question and my answer 。正如我在那里提到的,如果你想让程序员编写LLVM IR,并且仍然坚持直接的函数调用,你应该将IR封装在一个函数中,并将其放在一个单独的文件中。
如果嵌入IR比性能更重要,那么您必须使用
我想您可以在构建过程中引入一些脚本,该脚本采用混合C/IR输入文件,将其拆分为两个文件,然后将它们编译在一起,并适当地修改IR中的调试信息,使其表现得像真正嵌入到C文件中一样。但这是一种非常棘手的方法,无论哪种方式,输入文件都不会是合法的C文件。 |
Sam Kellett · 为C++库提供C API和严格别名 6 年前 |
Wietlol · LLVM IR本机方法 6 年前 |
mikasa · llvm-将参数传递给传递 6 年前 |
James Allingham · llvm JIT将库添加到模块 6 年前 |