从llvm 2.7开始,可以隔离类型以及LLVM在llvmContext中创建JIT模块所需的任何内容
但是,我还不太清楚如何在使用llvmContext时如何回收内部分配的内存资源。我认为应该有一个,因为使用llvmContext的目的是从不共享任何依赖项的其他线程安全地使用它们,但是线程会定期启动和结束,并不断创建新的llvmContexts最终会消耗所有可用的RAM。
最佳答案
是的,LLVMContext的析构函数将释放其所有内存。如果不是,请提交一个错误http://llvm.org/bugs!当然,不要破坏全局的:-)
如果要关闭,也可以调用llvm::llvm_shutdown()释放全局静态变量。请注意,没有llvm_startup函数或类似的东西...