我想分析LLVM IR中的指針值。如何比較LLVM-IR中的指針?
如圖LLVM Value Class所示,
Value
是一個很重要的LLVM類。它是由程序計算的所有 值的基類,可用作其他 值的操作數。值是其他重要類的超類,如 指令和函數。所有值都有一個類型。類型不是 Value的子類。某些值可以有一個名稱,它們屬於某個 模塊。在值上設置名稱會自動更新模塊的符號表。
要測試一個Value
是否是指針,有一個函數a->getType()->isPointerTy()
。 LLVM也提供了一個LLVM PointerType class,但是沒有直接的API來比較指針的值。
所以我不知道如何比較這些指針值,以測試它們是否相等。我知道有AliasAnalysis
,但我對AliasAnalysis
結果有疑問,所以我想親自驗證它。