1
我正在使用BasicBlock迭代器遍歷基本塊中的指令。指令類是否提供任何直接方法來檢查指令是「和」還是「或」指令。如果沒有,是否有必要進行類型轉換?檢測'和','或'指令
我正在使用BasicBlock迭代器遍歷基本塊中的指令。指令類是否提供任何直接方法來檢查指令是「和」還是「或」指令。如果沒有,是否有必要進行類型轉換?檢測'和','或'指令
有Instruction *I; I->
getOpcode()
method
getOpcode()返回指令等的枚舉中的一個的成員::添加。 定義在文件Instructions.h的第82行。當BasicBlock迭代不需要
鑄造。當迭代器不返回指令時需要迭代def-use結構時。
用法是這樣的:
BasicBlock *b = ...;
for (BasicBlock::iterator i = b->begin(), ie = b->end(); i != ie; ++i) {
Instruction* I = &*i; // get Instr pointer from iterator.
switch (I->getOpcode()) {
case Instruction::And: // code
case Instruction::Or: // code
default: // other type
}
}
用於文檔寫這樣的回答:http://llvm.org/docs/ProgrammersManual.html