我最近一直在探索LLVM优化,但有一个小问题:
我们如何知道内置的传递(而不是我们编写的LLVM传递)可以在函数级别(使用FunctionPassManager)或模块级别应用,等等?
示例-如KaleidoScope教程4中所示:
TheFPM->add(createCFGSimplificationPass());这是相当明显的,它应该是在功能级别,但其他的传递呢?它们是否都能在任何级别(BasicBlock、功能、模块等)正确工作?
发布于 2017-06-01 17:28:59
我认为您可以通过查看源代码来发现这一点。例如,这里是SimplifyCFGPass的代码,它继承了FunctionPass,这里是MemoryDependencyAnalysisPass的源代码,如您所见,这是一个函数级别的传递。
https://stackoverflow.com/questions/44310047
复制相似问题