获取FunctionPass llvm中的当前模块

时间:2017-01-22 20:48:59

标签: llvm llvm-c++-api

我在LLVM中编写函数传递,需要调用方法Module :: getOrInsertFunction。我需要访问当前函数的模块。我怎么得到它?

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:1)

请参阅:http://llvm.org/docs/WritingAnLLVMPass.html 根据此处的文档, 明确地说,FunctionPass子类不允许: 1.检查或修改当前正在处理的功能以外的其他功能。 2。从当前模块添加或删除功能。 3.从当前模块添加或删除全局变量。 4.维护runOnFunction调用之间的状态(包括全局数据)。

因此,您不能从FunctionPass内部调用getOrInsertFunction。您将需要一个ModulePass