如何在LLVM中将genericValue转换为Value?

时间:2013-11-06 09:09:52

标签: llvm

我在翻译工作。我在内存中有一个变量的地址,我设法从它获得真正的值,并使用LoadValueFromMemory函数将它放在genericValue中。现在我需要创建一个StoreInst,并希望将这个值放在Value对象中,以便在StoreInst中使用它。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

要回答标题中的问题,GenericValue只是一个与类型无关的容器。要从中创建LLVM Value,您需要创建相应类型的Constant,并使用该值初始化常量。

我假设你指的是从一个模块中获取一个值并在另一个不相关的模块中使用它,否则我不清楚为什么你为此通过GenericValue

  • 如果值来自翻译方,则无需将其存储在GenericValue中,您只需从该值创建Constant即可。
  • 如果值来自同一模块中的LLVM IR端,您也不需要将Value加载到GenericValue,您可以直接使用Value作为创建store指令时的参数。