1

分岐命令には、ジャンプ先の基本ブロックの名前であるラベルが含まれています。それを考えると、分岐命令から MachineBasicBlock オブジェクトを抽出する方法はありますか? 例えば:

for(MachineBasicBlock &BB : MF){
    for(MachineInstr &MI : BB){
      if(MI.isConditionalBranch()){
        MachineBasicBlock &InstBB = something(MI.getOperand(0));
      }
    }
  }
4

1 に答える 1

1

最初にMIのオペランドをBasicBlockSDNodeにキャストしてから、 を使用しますgetBasicBlock()。LLVMcast<>()関数を使用してキャストを実行することを忘れないでください。

于 2019-12-09T13:54:41.953 に答える