【问题标题】:Can I get a log of optimizations applied by the compiler? [duplicate]我可以获得编译器应用的优化日志吗? [复制]
【发布时间】:2014-05-01 14:44:22
【问题描述】:

在编译启用了优化的 C++ 应用程序或库时,例如用于 gcc 的-O3,有没有办法列出应用的优化?我的意思是,没有比较实际的字节码。这会很有趣。

【问题讨论】:

  • 值得注意的是,这些信息很少很有用。 GCC 几乎完全在 GIMPLE 和 RTL 中进行了优化,很难回头看看这些语句来自什么“行”。特别是如果它使用案例分析,那么它必须回溯并找到它所指事物的具体案例......等等。
  • @AlecTeal 好点,谢谢。
  • 不值得我投反对票,但是:“这个问题没有显示任何研究努力”是正确的。

标签: c++ compiler-construction compiler-optimization


【解决方案1】:

来自

http://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html

-fopt-info 系列开关使优化器将信息转储到stderr(或您喜欢的文件)。特别是,-fopt-info-missed 有助于了解为什么无法应用优化。

有很多不同的组合可用。从链接页面:

例如,

          gcc -O3 -fopt-info-missed=missed.all

将所有传递的错过优化报告输出到missed.all。

再举个例子,

  gcc -O3 -fopt-info-inline-optimized-missed=inline.txt

将所有内联传递中有关错过的优化以及优化位置的信息输出到 inline.txt。

【讨论】:

【解决方案2】:

如果您真的在寻找针对给定优化级别应用了哪些标志,只需在手册页中查找:http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html

【讨论】:

  • 这些标志并不是唯一应用的优化。除了一些“隐藏”的优化之外,这些标志应用了。
猜你喜欢
  • 2012-03-29
  • 1970-01-01
  • 2016-07-21
  • 2017-11-05
  • 1970-01-01
  • 1970-01-01
  • 2017-07-04
  • 2011-08-11
  • 1970-01-01
相关资源
最近更新 更多