我想分析LLVM IR中的指针值。如何比较LLVM-IR中的指针?
如图LLVM Value Class所示,
Value
是一个很重要的LLVM类。它是由程序计算的所有 值的基类,可用作其他 值的操作数。值是其他重要类的超类,如 指令和函数。所有值都有一个类型。类型不是 Value的子类。某些值可以有一个名称,它们属于某个 模块。在值上设置名称会自动更新模块的符号表。
要测试一个Value
是否是指针,有一个函数a->getType()->isPointerTy()
。 LLVM也提供了一个LLVM PointerType class,但是没有直接的API来比较指针的值。
所以我不知道如何比较这些指针值,以测试它们是否相等。我知道有AliasAnalysis
,但我对AliasAnalysis
结果有疑问,所以我想亲自验证它。