我怎么能在llvm中使用SplitEdge方法

时间:2013-05-04 23:11:09

标签: c++ llvm

我需要在边缘插入一个基本块。我尝试在以下链接中使用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的问题 感谢

1 个答案:

答案 0 :(得分:1)

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

但是,如果您在LLVM IR上执行这些操作,请考虑在正确的传递中执行这些操作 - 这将使您的代码在现有传递中更好地发挥。