c++ - 在 LLVM 中检测整数比较条件
问题描述
#include <stdio.h>
#include <string.h>
int main (){
unsigned short int a = 10;
if (a == 10){
//something
}
}
在 LLVM 传递中,我将如何检测 2 个操作数整数比较条件语句,如上图所示:(a == 10)?请让我知道我应该在 LLVM api 中寻找什么。
解决方案
你所拥有的是一个ICmpInst,它的操作数是整数。由于两个操作数必须具有相同的类型,isa<ICmpInst>(foo) && isa<IntegerType>(foo->getOperand(0))
因此足以识别特定指令是否是您要检测的类型。
推荐阅读
- python - 将脚本从 Linux 更改为 Python - 自动化
- java - java.util.NoSuchElementException - 线程“主”错误中的异常
- visual-studio - vstfs:// 协议尝试在 VS 2012 中打开但失败
- jquery - jQuery:数组在空间中断
- html - HTML 包含菜单 - 当前页面 css
- javascript - 如何防止扩展弹出页面中的任何内容在新选项卡中打开链接
- github - 如何使用 Github GraphQL 搜索我自己的提交?
- r - 删除最后一个空格之前的所有内容
- c++ - 编写一个包含两个类数据成员 numBorn 和 numliving 的类
- php - 用PHP中的链接替换文本