2016-01-27 38 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

相關問題