【问题标题】:C++ : In how many ways compiler optimizes away our code?C++:编译器以多少种方式优化我们的代码?
【发布时间】:2010-12-03 07:10:50
【问题描述】:

.

我想知道编译器可以/确实优化我们用 C++ 编写的代码的所有可能方式(或至少是流行的方式)?我也想知道优化是如何完成的(在每种情况下)!

到目前为止,我知道两个优化,即。空基优化 (EBO) 和返回值优化 (RVO)。还有什么?我听说过“const”优化,“unused variable”优化。它们是什么?

.

【问题讨论】:

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


【解决方案1】:

所有可能方式?你肯定是在开玩笑。为此,请查看多年的编译器研究和实践。

对于具体示例,请在此处查找每个选项:http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html

【讨论】:

    【解决方案2】:

    来自标准文档,第 1.9 节

    4) 该条款有时被称为“as-if”规则,因为 实施可以随意忽略本国际标准的任何要求 只要结果是符合要求的,只要可以从程序的可观察行为中确定。例如, 如果一个实际的实现可以推断出它的值未被使用并且没有影响表达式的副作用,则它不需要评估表达式的一部分 产生了程序的可观察行为。

    所以实际上符合标准的编译器可以执行任何类型的优化,只要它产生期望的结果。

    【讨论】:

      【解决方案3】:

      难以置信的广泛,因为有许多优化,编译器编写者总是想得更多。它们有很多,一些针对运行时间进行优化,另一些针对二进制大小进行优化。许多也不是专门的 C++,通用的编译器优化技术是为许多不同语言的许多编译器/解释器实现的。

      一小撮:

      更多信息:

      【讨论】:

      • 。感谢您回复这个话题.. 至少我可以从您提供的那些链接开始... :-)
      猜你喜欢
      • 2013-03-11
      • 2013-02-14
      • 1970-01-01
      • 2011-10-27
      • 2013-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-13
      相关资源
      最近更新 更多