2012-01-11 69 views

回答

2

相反,优化编译器可以在当代CPU上实现更多功能。自动矢量化使代码加快几倍。现代指令集还提供了一些优化机会(例如,在x86上使用CMOV代替条件分支)。

有一些地区,性能差距缩小。 CPU更快速地执行函数调用,因此函数内联可能不像以前那样有益。循环展开有时会使代码变慢一点。但是在大多数情况下,编译器优化和CPU优​​化是相互正交的。 CPU不能执行循环融合或通用子表达式消除。编译器无法为动态指令调度,分支预测或数据预取提供很好的选择。