LLVM getBasicBlockIndex()或等效项

时间:2012-12-21 10:23:03

标签: llvm

我有一些获取基本块索引的问题。

for (Function::iterator II = F.begin(), EE = F.end(); II != EE; ++II, ++ii) 
{  BasicBlock* BB=II;

我有段错误或不能使用我在LLVM中找到的几种方法的复杂结构。您是否知道如何尽可能简单地使用以下方法:

http://llvm.org/doxygen/Instructions_8h_source.html#l02136

http://llvm.org/doxygen/EdgeBundles_8cpp_source.html#l00078

或等同的东西?我只想获得基本块的ID。

谢谢!

1 个答案:

答案 0 :(得分:2)

正如Eli Bendersky在上述评论中指出的那样,这取决于你对指数的解释。如果您只对基本块的唯一标识符感兴趣,则基本块的名称在函数中是唯一的。你可以使用

获得
BB->getName()

还有其他类型的ID与基本块关联,这取决于算法的性质。例如,如果使用Keith Cooper的迭代指针算法编写支配树构造算法,则会将每个基本块与反向深度优先的增量ID相关联。此ID不是BasicBlock结构的一部分,应由您维护。