【发布时间】:2015-03-31 04:54:12
【问题描述】:
什么是基于编译器反馈(不是链接器反馈)的优化?如何获取 arm gcc 编译器的反馈文件?
【问题讨论】:
什么是基于编译器反馈(不是链接器反馈)的优化?如何获取 arm gcc 编译器的反馈文件?
【问题讨论】:
阅读 GCC 文档中的 chapteroptimizations(以及 GCC 中关于 ARM 的部分:ARM options)
你可以使用:
-flto 以及其他优化标志(所以 make CC='gcc -flto -O2'):链接阶段也进行优化(因此编译器链接的文件不仅包含目标代码,也是中间的GIMPLE内部编译器表示)-fprofile-generate、-fprofile-use、-fauto-profile 等...):您首先使用分析指令生成代码,运行一些具有代表性的基准以获取分析信息,然后使用这些指令进行第二次编译分析信息。您可以混合使用这两种方法并提供许多其他优化标志。一定要和他们保持一致。
在 x86 和 x86-64(以及本机 ARM)上,您还可以使用 -mtune=native,还有很多其他的 -mtune 可能性。
有些人称基于配置文件的优化编译器反馈优化(因为动态运行时配置文件信息被反馈给编译器)。我更喜欢“配置文件引导优化”术语。另见this old question。
【讨论】: