1

C++:编译器优化我们的代码的方式有多少?

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

到目前为止,我知道两个优化,即,空基优化(EBO)和返回值优化(RVO)。还有什么?我听说过“const”优化,“未使用的变量”优化。他们是什么?

+1

http://en.wikipedia.org/wiki/Category:Compiler_optimizations – icecrime 2010-12-03 07:45:16

+1

什么是点? – avakar 2010-12-03 08:20:45

+0

点?哪个点? – Nawaz 2010-12-03 08:23:28

回答

4

令人难以置信的是广泛的,因为有很多的优化和编译器编写者总是想着多了起来。它们中有很多,一些针对运行时间进行优化,另一些针对二进制大小进行优化。许多也不是特别的C++,一般的编译器优化技术是针对许多不同语言的编译器/解释器而实现的。

那么几个:

更多信息:

5

从标准文档,第1.9节

4)这一规定有时被称为“为假设”规则,因为的实现可以自由地忽视本国际标准 的任何要求,只要结果就好像该要求已被遵守一样,只要可以从观察者确定该计划的可行行为。例如, 一个实际的实现不需要评估表达式的一部分,如果它可以推断出它的值没有被使用,也不会产生影响程序可观察行为的副作用。

因此,实际上符合标准的编译器可以,只要它产生的所需结果进行任何优化。