LLVM 优化过程需要达到什么水平?
What level do LLVM optimization passes need to work on?
我最近一直在探索 LLVM 优化,但有一个小问题:
我们如何知道内置通道(不是我们编写的 LLVM 通道)可以应用于函数级别(使用 FunctionPassManager
)或模块级别等?
示例 - 如 KaleidoScope 教程 4 中所示:
TheFPM->add(createCFGSimplificationPass());
这个很明显,它应该在功能级别,但其他通道呢?它们是否都可以在任何级别(BasicBlock、Function、Module 等)正确工作?
我最近一直在探索 LLVM 优化,但有一个小问题:
我们如何知道内置通道(不是我们编写的 LLVM 通道)可以应用于函数级别(使用 FunctionPassManager
)或模块级别等?
示例 - 如 KaleidoScope 教程 4 中所示:
TheFPM->add(createCFGSimplificationPass());
这个很明显,它应该在功能级别,但其他通道呢?它们是否都可以在任何级别(BasicBlock、Function、Module 等)正确工作?