【发布时间】:2020-02-10 11:58:05
【问题描述】:
the Clang/LLVM compiler 的 LLVM 后端 在 IR(中间表示)上运行各种 pass 以进行优化。
- 如何知道在任何 -O1/2/3 模式下正在运行的所有通道?
- 有没有办法删除其中一些通行证并添加一些其他自定义书面通行证?
- 另外,需要注意的传递之间是否存在任何依赖关系?
【问题讨论】:
标签: clang llvm compiler-optimization llvm-clang llvm-ir
the Clang/LLVM compiler 的 LLVM 后端 在 IR(中间表示)上运行各种 pass 以进行优化。
【问题讨论】:
标签: clang llvm compiler-optimization llvm-clang llvm-ir
所有优化流水线构建相关的逻辑都集中在PassBuilder.cpp。在那里您可以看到优化级别的直接条件。
当然,只需将其添加到该源文件即可。
LLVM 开发人员试图使所有通道独立(据我所知,它们大部分是独立的)。如果您想使用某个 pass 中的信息,则应将该 pass 注册为 Analysis(即不转换代码但收集信息的 pass)。你可以在here阅读更多关于分析依赖的内容。
我希望这能回答你的问题!
【讨论】: