由Clang / LLVM编译器执行的修改优化

问题描述 投票:1回答:1
the Clang/LLVM compiler

LLVM后端在IR(中间表示)上运行各种pass以进行优化。

  • 如何知道所有通行证是否在-O1 / 2/3模式下运行?
  • 是否可以删除其中一些通行证并添加其他自定义书面通行证?
  • 而且,通行证之间是否需要照顾?
clang llvm compiler-optimization llvm-clang llvm-ir
1个回答
0
投票
与优化管道构建有关的所有逻辑都集中在PassBuilder.cpp中。在那里,您可以看到优化级别上的直接条件。

是否可以删除其中一些通行证并添加其他自定义书面通行证

当然,只需将其添加到该源文件中。

而且,通行证之间是否有任何依赖关系,需要照顾

LLVM开发人员尝试使所有通道都独立(据我所知,它们在大多数情况下都是如此)。如果要使用某个通行证中的信息,则该通行证应注册为

Analysis(即,不对代码进行转换但可以收集信息的通行证)。您可以在here中阅读有关分析依赖性的更多信息。

我希望这能回答您的问题!

© www.soinside.com 2019 - 2024. All rights reserved.