0

我想为 llvm 实现别名分析。文档说别名分析实现应该实现功能run

bool run(Module &M) {
  InitializeAliasAnalysis(this);
  // Perform analysis here...
  return false;
} 

run但是我在 llvm 源代码中找不到函数,例如文件lib/Analysis/BasicAliasAnalysis.cpp没有它,也没有lib/Analyisi. run方法是什么basicaa

4

1 回答 1

1

似乎这些信息已经过时了。您需要覆盖的方法取决于您从中派生的传递类型:runOnModule模块传递、runOnFunction函数传递等。

BasicAliasAnalysis它本身不使用任何runOn...方法,因为它继承自ImmutablePass- 不可变传递是从未实际运行过的传递,因此继承其runOnModule方法没有意义。

请记住,添加自己的别名分析时需要实现的主要方法是alias- 这是被查询的方法。如果您的自定义别名分析不需要首先分析模块 - 就像BaseAliasAnalysis不需要 - 那么您也可以继承ImmutablePass并忽略该runOnModule方法。

于 2013-05-25T04:08:20.643 回答