llvm - 获取br

时间:2017-12-03 19:53:59

标签: llvm llvm-ir control-flow control-flow-graph llvm-3.0

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

例如,对于代码:

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

我获得了IR表示

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

现在,当我在传递中遇到此指令时,我需要确切知道这些标签指向的位置。有人可以告诉我怎么做吗?

1 个答案:

答案 0 :(得分:1)

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