在基本块中查找数组访问

时间:2012-03-12 10:53:58

标签: llvm

如何检查基本块中是否存在数组访问?

例如,我想在以下示例中找到[i]。

例如:

           for(i=0;i<n;i++)
                  a[i]=a[i+1]+i;

1 个答案:

答案 0 :(得分:1)

数组访问由getelementptr指令建模。 因此,您可以使用以下内容迭代Basic Block:

for (BasicBlock::iterator i = blk->begin(), e = blk->end(); i != e; ++i) {
  if(isa<GetElementPtrInst>(i)) {
    // process it here
  }
}