llvm - 获取类型 br 指令的标签字段中引用的基本块的第一条指令
llvm - get the first instruction of the basic block referred to in the label field of instruction of type 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
我正在尝试编写一个检查代码控制流的通道。给定一条 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