2016-01-27 19 views
0

我想用LLVM的别名分析结果在我的独立程序,例如,可能是这样开始:如何在独立程序中使用llvm分析传递?

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

但AA似乎就没有任何意义。那么如何在独立程序中使用llvm分析传递?

回答

0

llvm分析是不是通过,但通过,说。

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

例如:

如果你想搜索那些只读取混叠的全局内存缓冲区

和将它们拉入常量地址空间,您可以创建这些指针的数组并检查针对非只读输入的别名。

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

参见: http://llvm.org/docs/AliasAnalysis.html

相关问题