在LLVM中检测整数比较条件

时间:2018-10-26 19:46:49

标签: c++ llvm llvm-clang llvm-ir llvm-c++-api

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

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

在LLVM传递中,如何检测2个操作数整数比较条件语句,例如上面显示的语句:(a == 10)?请让我知道我应该在LLVM API中寻找什么。

1 个答案:

答案 0 :(得分:0)

您所拥有的是一个ICmpInst,其操作数是整数。由于两个操作数必须具有相同的类型,因此isa<ICmpInst>(foo) && isa<IntegerType>(foo->getOperand(0))足以识别特定指令是否是您要检测的类型。