【发布时间】:2014-09-20 17:12:46
【问题描述】:
我有一个文本文件中的函数列表,我想在运行时向 LLVM 公开它的执行引擎,我想知道是否有可能在运行时找到指向函数的指针而不是硬代码所有的 GlobalMappings 都是手动的,因为我以后可能想添加更多。例如:
// File: InternalFunctions.txt
PushScreen
PopScreen
TopScreen
// File: ExposeEngine.cpp
// Somehow figure out the address of the function specified in a string
void* addy = magicAddress("PushScreen");
jit->addGlobalMapping(llvmfunction, addy);
如果可能的话,我很想知道怎么做,因为我正在尝试通过 jit-ing c++ 编写我的游戏引擎。我之前能够创建一些结果,但我必须在映射中进行硬编码。我注意到 Gtk 使用了我所要求的内容。当您使用 glade 并提供信号处理程序时,您在 c 中构建的程序将自动在 glade 文件中提供的字符串引用的可执行文件中找到该函数。如果获得结果需要我研究这个 Gtk 事情,我会非常乐意,但我不知道 api 的哪些功能或部分处理这个问题 - 我已经尝试查找它。我很想听听建议或建议。
【问题讨论】:
-
所以,基本上,你有一些基本的运行时,你想连接到一些 JITed 代码?
标签: c++ c llvm function-pointers jit