LLVM优化需要通过什么级别才能处理?

时间:2017-06-01 14:18:23

标签: optimization llvm

我最近一直在探索LLVM优化,但有一个小问题:

我们怎么知道可以在功能级别(使用FunctionPassManager)或模块级别等应用内置传递(不是我们编写的LLVM传递)?

示例 - 如KaleidoScope教程4中所示:

TheFPM->add(createCFGSimplificationPass());

这个很明显,它应该在功能级别,但其他传递呢?它们是否都适合在任何级别(BasicBlock,Function,Module等)正常工作?

1 个答案:

答案 0 :(得分:1)

我认为你可以通过查看源代码找到它。 例如,here是SimplifyCFGPass的代码,它继承了FunctionPass,而here是MemoryDe​​pendencyAnalysisPass的源代码,你可以看到它是一个函数级传递。