如何在独立程序中使用llvm分析?

时间:2016-01-27 04:28:29

标签: c++ llvm

我想在我的独立程序中使用llvm别名分析结果,例如,最初可能是这样:

int main()
{
  ...
  PassManager PM(M);
  ImmutablePass* basic_aa = createBasicAliasAnalysisPass();
  PM.add(basic_aa);
  AliasAnalysis& AA = basic_aa->getAnalysis<AliasAnalysis>();
  ...
}

但AA似乎毫无意义。那么如何在我的独立程序中使用llvm分析传递呢?

1 个答案:

答案 0 :(得分:0)

llvm分析不是通过,而是通过,正如所说。

AA类用于确定两个指针是否可以指向内存中的同一个对象。传统上,别名分析使用Must,May或No别名响应来响应查询,指示两个指针始终指向同一个对象,可能指向同一个对象,或者已知永远不会指向同一个对象

示例:

如果要搜索只读取的非别名全局内存缓冲区并将其拉入常量地址空间,可以创建这些指针的数组并检查非读取输入的别名。

AA->alias(psAVal, psBVal) != AliasResult::NoAlias

请参阅: http://llvm.org/docs/AliasAnalysis.html