Обнаружение сравнения целых чисел в LLVM - PullRequest
0 голосов
/ 26 октября 2018
#include <stdio.h>
#include <string.h>

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

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

1 Ответ

0 голосов
/ 27 октября 2018

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

...