如何在 LLVM 中查找一条指令 post 是否支配另一条指令?

How to find if an instruction post-dominates another in LLVM?

使用llvm::DominatorTree class,您可以查明一条指令是否支配另一条指令。这样做的必要功能是可用的:见

http://llvm.org/doxygen/classllvm_1_1DominatorTree.html

DT = DominatorTree(Func);
...
...
DT.dominates(I1,I2);

但是,相同的功能不适用于 llvm::PostDominatorTree 结构。事实上,后者的doxygen页面几乎是空的:

http://llvm.org/doxygen/structllvm_1_1PostDominatorTree.html

有没有一种方法可以像 LLVM 中的支配一样轻松地检查后支配?

PostDominatorTree的大部分方法都继承自DominatorTreeBase,包括dominates。所以这与 llvm::DominatorTree

相同

您可以在 "Public Member Functions inherited from llvm::DominatorTreeBase< NodeT, IsPostDom >" 下找到 doxygen 文档。