我想从我的llvm IR文件中删除phi节点,所以我读过Reg2Mem pass是一个解决方案(为什么?)。
通过将opt
指定为参数,我可以轻松地使用-reg2mem
工具中的此传递。
但是,我希望将此功能内置到我自己的名为FlattenO
的传递中。因此,我尝试将Reg2Mem传递添加为我的传递的必需依赖项(它应该自动调用?)。
void FlattenO::getAnalysisUsage(AnalysisUsage &AU) const {
AU.addRequired<Reg2Mem>();
}
上面的代码不起作用,因为它无法找到任何Reg2Mem传递。我应该包含哪些文件才能使用Reg2Mem通行证?另外,请更正我的代码,以便一切都按预期工作。