如何解决如何在KaleidoscopeJIT中使用GlobalVariable?
在LLVM tutorial随附的JIT中,我正在努力寻找或找到有关如何使用llvm::GlobalVariable
的任何提示。
似乎在创建全局变量时:
new llvm::GlobalVariable(
*m_module,llvm::Type::getDoubleTy(m_context),false,llvm::GlobalVariable::ExternalLinkage,init_value,name);
它仅适用于创建该模块的模块(无论是否关联)。
当您创建新模块时(就像JIT的每个功能一样),无法再解决全局问题。
在创建新模块时,您需要以某种方式为新模块重新创建所有GlobalVariable
对象吗?这样的事情会允许相同的变量在模块之间共享吗?
也无需编辑JIT即可在编译后保存Module对象:
CompileLayer.setNotifyCompiled([](VModuleKey,std::unique_ptr<Module> M){
static std::vector<std::unique_ptr<Module>> compiled_modules;
compiled_modules.push_back(std::move(M));
});
在尝试解析全局变量时,它只会出现段错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。