Обнаружение целочисленного сравнения в LLVM
60
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
2 года, 4 месяца назад
добавить комментарий
пожаловаться
Решение
127
У вас есть ICMPInst, операнды которого целые. Поскольку оба операнда должны иметь один и тот же тип, isa<ICmpInst>(foo) && isa<IntegerType>(foo->getOperand(0))
достаточно, чтобы определить, является ли конкретная команда видом, который вы хотите обнаружить.
ответил(а)
2018-10-27T11:31:00+03:00
2 года, 4 месяца назад
добавить комментарий
пожаловаться
Ваш ответ
- Вопросы
- Llvm-c++-api
- Обнаружение целочисленного сравнения в LLVM