LLVM中的上下文概念

LLVM中的上下文概念,llvm,llvm-ir,Llvm,Llvm Ir,我是LLVM环境的新手。我试图理解语境的概念。代码的上下文是什么意思?为什么框架需要它?从web上的各种信息来看,它的状态信息似乎是针对给定代码的。还是无法想象它会做什么?为什么重要?上下文允许单个程序使用两个库,例如图形库和三维音频库,这两个库都在引擎盖下使用LLVM,以使其LLVM不会相互干扰。规则是永远不要在两个上下文之间移动LLVM对象。使用一个上下文创建的所有模块、类型和常量将永远保留在该上下文中。验证器将检查模块中的所有IR是否属于同一上下文,以防万一 当您希望两个线程同时使用LLV

我是LLVM环境的新手。我试图理解语境的概念。代码的上下文是什么意思?为什么框架需要它?从web上的各种信息来看,它的状态信息似乎是针对给定代码的。还是无法想象它会做什么?为什么重要?

上下文允许单个程序使用两个库,例如图形库和三维音频库,这两个库都在引擎盖下使用LLVM,以使其LLVM不会相互干扰。规则是永远不要在两个上下文之间移动LLVM对象。使用一个上下文创建的所有模块、类型和常量将永远保留在该上下文中。验证器将检查模块中的所有IR是否属于同一上下文,以防万一

当您希望两个线程同时使用LLVM时,这种不干扰也有助于线程安全。以后不能组合上下文,但可以生成汇编代码文本并将其连接起来


为了方便起见,还有一个全局对象,但只有主程序应该使用它,以免我们有两个LLVM实例再次干扰。

上下文就是宇宙。函数和全局变量存在于模块中,模块、类型和其他一些东西存在于上下文中。上下文之外不存在任何内容。