llvm – 获取br类型指令的标签字段中引用的基本块的第一条指令

我正在尝试编写一个检查代码控制流的传递.给定br指令,我需要访问标签字段中引用的基本块.

例如,对于代码:

 for(i = 0; i < count; i++){
    sum = add(sum, array[i]);
  }

我得到IR代表

br i1 %cmp, label %for.body, label %for.end

现在当我在传递中遇到这个指令时,我需要知道这些标签指向的确切位置.请问有谁能告诉我怎么做?

最佳答案 对该指令调用 – > getOperand(1)和 – > getOperand(2)方法.这将分别给你第一和第二BB.见
http://llvm.org/doxygen/classllvm_1_1User.html#abe1de1520a21f77ac57cc210bf0fb0b4

点赞