1
像动态指令调度一样在CPU设计方面取得进展缩小了splat编译器生成的代码与优化编译器之间的性能差距,也就是说编译器今天能够变得更加愚蠢吗?由splat编译器生成的代码的相对性能
像动态指令调度一样在CPU设计方面取得进展缩小了splat编译器生成的代码与优化编译器之间的性能差距,也就是说编译器今天能够变得更加愚蠢吗?由splat编译器生成的代码的相对性能
相反,优化编译器可以在当代CPU上实现更多功能。自动矢量化使代码加快几倍。现代指令集还提供了一些优化机会(例如,在x86上使用CMOV代替条件分支)。
有一些地区,性能差距缩小。 CPU更快速地执行函数调用,因此函数内联可能不像以前那样有益。循环展开有时会使代码变慢一点。但是在大多数情况下,编译器优化和CPU优化是相互正交的。 CPU不能执行循环融合或通用子表达式消除。编译器无法为动态指令调度,分支预测或数据预取提供很好的选择。