Llvm 从分支指令中提取MachineBasicBlock

Llvm 从分支指令中提取MachineBasicBlock,llvm,machine-instruction,Llvm,Machine Instruction,分支指令包含标签,这些标签是它可能跳转到的基本块的名称。既然如此,有没有办法从分支指令中提取MachineBasicBlock对象?例如: for(MachineBasicBlock &BB : MF){ for(MachineInstr &MI : BB){ if(MI.isConditionalBranch()){ MachineBasicBlock &InstBB = something(MI.getOperand(0));

分支指令包含标签,这些标签是它可能跳转到的基本块的名称。既然如此,有没有办法从分支指令中提取MachineBasicBlock对象?例如:

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

首先将
MI
的操作数强制转换为,然后使用
getBasicBlock()
。记住使用LLVM
cast()
函数执行强制转换