热冷分裂是LLVM中代码优化的有效方法。内置的LLVM通道位于:
/llvm/lib/Transforms/IPO/HotColdSplitting.cpp
实际上,我想使用此通行证来优化我的代码,但是我没有找到任何有关如何使用此内置通行证来优化我的代码的文档。
[我已经知道我应该使用LLVM opt命令来加载通行证,但是我没有找到在程序上应用此优化通行证的正确方法。
到目前为止,我有两个问题:
1)如何正确使用opt加载此过程以优化我的代码2)我可以直接在clang上使用此通道来优化C / C ++代码,例如-fsanitize = address之类的开关适用于基础编译程序吗?
谢谢。
您可以将-mllvm -hot-cold-split=true
标志传递给clang
,这将在编译文件时在优化器中启用热/冷拆分过程。
是的,原则上您可以直接使用此通行证(从回答问题时开始);当前形式的LLVM中的热/冷拆分仅针对代码大小进行优化。另外,您可能想尝试先通过PGO收集性能分析数据,然后再将其提供给clang,以便在构建过程中利用配置文件信息(这可能有助于在性能方面进行热/冷拆分)。