获取FunctionPass llvm中的当前模块

获取FunctionPass llvm中的当前模块,llvm,llvm-c++-api,Llvm,Llvm C++ Api,我正在LLVM中编写一个函数传递,需要调用方法Module::getOrInsertFunction。我需要访问当前功能的模块。如何获取它?您可以使用getParent()函数:请参阅: 根据这里的文件,, 为了明确起见,FunctionPass子类不允许: 1.检查或修改当前正在处理的函数以外的函数。 2。从当前模块中添加或删除功能。 3.从当前模块中添加或删除全局变量。 4.跨runOnFunction调用维护状态(包括全局数据) 因此,不能从FunctionPass内部调用getOrIns

我正在LLVM中编写一个函数传递,需要调用方法Module::getOrInsertFunction。我需要访问当前功能的模块。如何获取它?

您可以使用getParent()函数:

请参阅: 根据这里的文件,, 为了明确起见,FunctionPass子类不允许: 1.检查或修改当前正在处理的函数以外的函数。 2。从当前模块中添加或删除功能。 3.从当前模块中添加或删除全局变量。 4.跨runOnFunction调用维护状态(包括全局数据)

因此,不能从FunctionPass内部调用getOrInsertFunction。你需要一个模块通行证