2012-01-11 108 views

回答

2

相反,優化編譯器可以在當代CPU上實現更多功能。自動矢量化使代碼加快幾倍。現代指令集還提供了一些優化機會(例如,在x86上使用CMOV代替條件分支)。

有一些地區,性能差距縮小。 CPU更快速地執行函數調用,因此函數內聯可能不像以前那樣有益。循環展開有時會使代碼變慢一點。但是在大多數情況下,編譯器優化和CPU優​​化是相互正交的。 CPU不能執行循環融合或通用子表達式消除。編譯器無法爲動態指令調度,分支預測或數據預取提供很好的選擇。