什么信息GCC档案导引优化(PGO)收集和优化使用它?(What information does

2019-07-05 07:39发布

哪些信息不GCC收集时启用-fprofile-generate和优化做实际上使用收集到的信息(设置时-fprofile-use标志)?

我需要在这里引用。 我搜索了一会儿,但没有发现任何记录。

关于链接时优化(LTO)将是一个加号的信息! = d

Answer 1:

-fprofile-generate使-fprofile-arcs-fprofile-values-fvpt

-fprofile-use使-fbranch-probabilities-fvpt-funroll-loops-fpeel-loops-ftracer

来源: http://gcc.gnu.org/onlinedocs/gcc-4.7.2/gcc/Optimize-Options.html#Optimize-Options

PS。 关于LTO也该网页上的信息。



Answer 2:

“什么每个程序员应该知道记忆”由乌利齐·德雷珀https://people.freebsd.org/~lstewart/articles/cpumemory.pdf http://www.akkadia.org/drepper/cpumemory.pdf

在7.4节

  • 汇编与--profile-产生生成针对每个目标文件.gcno文件。 (即用于对gcov覆盖报告相同的文件)
  • 那么你必须运行一些测试,在运行时它记录的数据覆盖到.gcda文件
  • 与--profile-use重新编译:它会收集覆盖率数据,并推断如果一个分支很可能(__builtin_expect(..,1)或不可能(__builtin_expect(..,0)

结果应该运行,因为它应该是在预取代码到处理器指令缓存更好更快。



文章来源: What information does GCC Profile Guided Optimization (PGO) collect and which optimizations use it?
标签: c++ gcc pgo lto