LLVM中的上下文概念

问题描述 投票:0回答:1

我是LLVM环境的新手。我试图理解上下文的概念。 “代码上下文”是什么意思?为什么框架需要它?从网络上的各种信息来看,它的状态信息似乎是给定代码的。仍然无法想象它的作用?以及为什么它很重要?

llvm llvm-ir
1个回答
0
投票

上下文的存在允许一个程序使用两个库(例如,一个图形库和一个3d音频库),它们都在后台使用LLVM,以使它们的LLVM彼此不干扰。规则是您永远不能在两个上下文之间移动LLVM对象。用一个上下文创建的所有模块,类型和常量将永远保留在该上下文中。 (以防万一,验证者将检查模块中的所有IR都属于同一上下文)。

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

还有一个方便使用的全局对象,但是只有main()程序才应使用该对象,以免我们再次有两个LLVM实例受到干扰。

© www.soinside.com 2019 - 2024. All rights reserved.