LLVM ICmpInst 中的 Opcode 代表什么?
What's the Opcode in LLVM ICmpInst represents for?
我通过以下代码获得了 ICmpInst 的操作码,
unsigned op = icmp->getOpcode();
现在我想根据操作码做不同的操作,所以我写了下面的代码,
switch (op){
case 32:
exp = (opl == opr);
break;
default:
break;
}
问题来了,我只知道操作码'32'代表'eq',但是其他的呢?
我在哪里可以找到其他操作码代表或者有更有效的方法吗?
icmp
指令的操作码只是 Instruction::ICmp
,但这并没有告诉您执行何种比较。它只告诉您您正在处理一条您已经知道的 icmp
指令。
你想要的是 getPredicate
,returns Predicate
enum 的值,它定义了像 CmpInst::ICMP_EQ
这样的常量,你可以在你的 switch 语句中使用。
我通过以下代码获得了 ICmpInst 的操作码,
unsigned op = icmp->getOpcode();
现在我想根据操作码做不同的操作,所以我写了下面的代码,
switch (op){
case 32:
exp = (opl == opr);
break;
default:
break;
}
问题来了,我只知道操作码'32'代表'eq',但是其他的呢? 我在哪里可以找到其他操作码代表或者有更有效的方法吗?
icmp
指令的操作码只是 Instruction::ICmp
,但这并没有告诉您执行何种比较。它只告诉您您正在处理一条您已经知道的 icmp
指令。
你想要的是 getPredicate
,returns Predicate
enum 的值,它定义了像 CmpInst::ICMP_EQ
这样的常量,你可以在你的 switch 语句中使用。