ΒΆbool isControlFlowEquivalent(
const llvm::BasicBlock& BB0,
const llvm::BasicBlock& BB1,
const llvm::DominatorTree& DT,
const llvm::PostDominatorTree& PDT)
bool isControlFlowEquivalent(
const llvm::BasicBlock& BB0,
const llvm::BasicBlock& BB1,
const llvm::DominatorTree& DT,
const llvm::PostDominatorTree& PDT)
Description
Return true if \p BB0 and \p BB1 are control flow equivalent. Two basic blocks are control flow equivalent if when one executes, the other is guaranteed to execute. This is determined using dominators and post-dominators: if A dominates B and B post-dominates A then A and B are control-flow equivalent.
Declared at: llvm/include/llvm/Transforms/Utils/CodeMoverUtils.h:39
Parameters
- const llvm::BasicBlock& BB0
- const llvm::BasicBlock& BB1
- const llvm::DominatorTree& DT
- const llvm::PostDominatorTree& PDT