【发布时间】:2018-03-26 01:17:04
【问题描述】:
我目前正在使用 LLVM 实现 JIT 编译器。 我遇到的问题是编译器运行时的一部分是用 C 实现的。
从我的中间表示,我可以生成所有本机函数。但是,该语言中的某些操作需要调用这些外部 C 函数。
我遇到的问题是,我的 IR 不知道传递给这些函数的参数的确切类型,它们可能采用 int 或 float。之前的代码生成是基于 C 的,而 C 的弱类型化允许轻松调用这些函数。但是,在生成 LLVM-IR 时,我需要知道这些预编译函数的签名,有没有办法使用 orc-API 或其他方法找出签名,或者最好只对配置进行硬编码每个必要的功能?
【问题讨论】:
-
这部分与stackoverflow.com/questions/15865191/…有关但是,没有使用orc,并且我旨在生成调用指令的这些函数已经存在于运行时中。