Обнаружение целочисленного сравнения в LLVM

57
5

#include <stdio.h>
#include <string.h>

int main (){
unsigned short int a = 10;
if (a == 10){
//something
}
}

В прохождении LLVM, как бы я обнаружил 2 операнда целого сравнения условных операторов, как показано выше: (a == 10)? Пожалуйста, дайте мне знать, что я должен искать в LLVM api.

спросил(а) 2018-10-26T22:46:00+03:00 1 год, 11 месяцев назад
1
Решение
119

У вас есть ICMPInst, операнды которого целые. Поскольку оба операнда должны иметь один и тот же тип, isa<ICmpInst>(foo) && isa<IntegerType>(foo->getOperand(0)) достаточно, чтобы определить, является ли конкретная команда видом, который вы хотите обнаружить.

ответил(а) 2018-10-27T11:31:00+03:00 1 год, 11 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема