2017-12-27 277 views
1

我的問題很簡單。給定類型分支的指令,我如何從中提取標籤? 例如:llvm - 獲取br指令的標籤

br label %while.cond 

應該給我while.cond

br label %while.end 

應該給我while.end

br i1 %cmp1, label %if.then, label %if.end 

應,if.then,分別若if.end給我。

+0

'inst-> getOperand(0)'? – arrowd

+0

我試過了。它返回的情況下,如果它存在,當它沒有,如%if.end,它返回整個基本塊。 – eren555

回答

0

首先檢查inst->isConditional(),然後訪問inst->getOperand(1)inst->getOperand(2)如果它爲真,並且inst->getOperand(0)如果它是假的。

整個BasicBlock是BranchInst實際接受的。如果你想要%if.then一行,那就打電話getName()就可以了。