llvm - 获取br指令的标签
问题描述:
我的问题很简单。给定类型分支的指令,我如何从中提取标签? 例如: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给我。
答
首先检查inst->isConditional()
,然后访问inst->getOperand(1)
和inst->getOperand(2)
如果它为真,并且inst->getOperand(0)
如果它是假的。
整个BasicBlock是BranchInst
实际接受的。如果你想要%if.then
一行,那就打电话getName()
就可以了。
'inst-> getOperand(0)'? – arrowd
我试过了。它返回的情况下,如果它存在,当它没有,如%if.end,它返回整个基本块。 – eren555