0

我需要将一个基本块插入边缘。我尝试在以下链接中使用 SplitEdge 方法:http://llvm.org/docs/doxygen/html/BasicBlockUtils_8cpp_source.html 在这里找到了答案:http: //lists.cs.uiuc.edu/pipermail/llvmdev/ 2010-July/033288.html 但是,我不想在runonFunction中设置它,我怎么能在没有遇到pass不等于null的问题的情况下使用它谢谢

4

1 回答 1

1

我认为最简单的方法是将SplitEdge方法的实现复制到您自己的代码中,并在 pass 为 NULL 时修改它们以使其工作。在当前的实现中,这意味着修改它以调用您自己的版本SplitBlock,并且在该版本中只需return new在调用之前添加P

但是,如果您在 LLVM IR 上执行此类操作,请考虑在适当的 pass 中执行它们 - 这将使您的代码与现有的 pass 配合得更好。

于 2013-05-05T06:47:58.360 回答