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 回答