gpt4 book ai didi

c++ - 在 LLVM 中,你如何检查一个 block 是否是一个合并 block

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:36:11 25 4
gpt4 key购买 nike

我正在编写一个 LLVM Pass。我的通行证需要知道哪个 block 是合并 block ,即具有多于 1 个前驱的 block 。我如何在我的代码中对此进行测试?

最佳答案

您可以像这样遍历所有前辈:

#include "llvm/Support/CFG.h"
BasicBlock *BB = ...;

for (pred_iterator PI = pred_begin(BB), E = pred_end(BB); PI != E; ++PI) {
BasicBlock *Pred = *PI;
// ...
}

你可以使用这个验证一个 BB 是否有多个前任:

BasicBlock *BB = ...;

if (BB->getSinglePredecessor() != null) /// one predecessor
{ ... }
else /// more than one predecessor
{ ... }

关于c++ - 在 LLVM 中,你如何检查一个 block 是否是一个合并 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10088118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com