Я хочу проанализировать значения указателя в LLVM IR.Как сравнить указатели в LLVM-IR?
Как показано на LLVM Value Class,
Value
это очень важный класс LLVM. Это базовый класс всех значений , вычисленных программой, которые могут использоваться в качестве операндов для других значений . Значение - это суперкласс других важных классов, таких как Инструкция и функция. Все значения имеют тип. Тип не является подклассом значения. Некоторые значения могут иметь имя и принадлежать модулю . Установка имени в значении автоматически обновляет таблицу символов модуля .
Чтобы проверить, если Value
является указателем или нет, есть функция a->getType()->isPointerTy()
. LLVM также предоставляет LLVM PointerType class, однако нет прямого apis для сравнения значений указателей.
Так что мне интересно, как сравнивать эти значения указателя, чтобы проверить, равны они или нет. Я знаю, что есть AliasAnalysis
, но у меня есть сомнения в результатах AliasAnalysis
, поэтому я хочу проверить его самостоятельно.