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

标签 compilation llvm llvm-c++-api

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

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 相同

您可以在“继承自 llvm::DominatorTreeBase< NodeT, IsPostDom > 的公共(public)成员函数”下找到 doxygen 文档。

关于compilation - 如何在 LLVM 中查找一条指令是否支配另一条指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46222515/

相关文章:

c++ - 如何在 Mac/OS X 上的 C++ 中包含 llvm/IR/Module.h?

C++ 模板的模板编译失败

c++ - 您如何减少 Visual C++ 项目(原生 C++)的编译时间和链接时间?

linux - FreeType 2 的 undefined reference

C/LLVM : Call function with illegal characters in its name

llvm - 机器值类型 "other"在 llvm SDnodes 中意味着什么

docker - 默认启用 scl 工具集

rust - 如何获取结构的LLVMTypeRef?

c++ - lldb 未解析的断点通过 C++ api

使用 C++ API 的 LLVM 优化