LLVM优化通行证需要什么级别



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

我们如何知道可以在功能级别(使用FunctionPassManager(或模块级别等上应用内置通行证(不是我们编写的LLVM通行证(?

示例 - 如万花筒教程4:

所示
TheFPM->add(createCFGSimplificationPass());

这个相当明显的是它应该处于功能级别,但是其他通过呢?它们是否要正确地在任何级别上工作(基本块,功能,模块等(?

我认为您可以通过查看源代码来找到它。例如,这是Simplefifycfgpass的代码,该代码继承了functionpass,这是内存依赖性的源代码,如您所见,它是函数级别通过。

最新更新