事实上我找到了两个解决方案,我想知道是否有任何区别:
isa<LoadInst>(i).i.getopcode()方法并与Load进行比较哪一个使用?
isa用于检查现有的dirived指令类.class i.getopcode()可以帮助您获取所有操作信息.
根据该继承图llvm::Instruction,LLVM内部将划分所有的指令分成几个不同的类别,如llvm::BinaryOperator,llvm::CallInst,llvm::CmpInst等,但有这些类没有确切的操作信息.
但是,对于Instruction::getOpcode(),它将直接从llvm::Instruction对象获取操作.你可以参考Instruction.def 来了解每条指令的定义.基本上,操作码将是指令所要求的精确操作.
说,对于LLVM IR add.你可以使用 isa<llvm::BinaryOperator>,知道这是一个BinaryOperator.但这仅适用于指令类.如果你想知道它是a ADD还是a SUB.i.getopcode()应该在这里使用.
| 归档时间: |
|
| 查看次数: |
2856 次 |
| 最近记录: |