LLVM Clang 14實現了驚人的性能優化

多年以來,LLVM / Clang 的性能已經迎來了相當大的提升。此外在 x86_64 和 AArch64 應用上,它也能夠與 GCC 編譯器並駕齊驅。即便如此,激烈的競爭並未就此止步。由最近一次提交的內容可知,即將於 2022 年初發布的 LLVM / Clang 14.0,將迎來更多性能方面的優化。

1.png

早些時候,LLVM 開發者 Djordje Todorovic 為 LLVM 的 Loop Invariant Code Motion(LICM)Pass 引入了相關改進,以便能夠在沒有 STORE 的情況下提升 LOAD 。

補丁描述稱,在 LICM 中開展加載 / 存儲更新時,若不能證明下沉存儲是安全的,LLVM 就不會提升加載,即使我們能夠證明它可被取消引用並移出循環。

該補丁通過在循環中插入適當的 PHI,並將其移動到循環前置器中以實現負載改善,而 STORE 將在循環中保持原樣。

通過這麼做,我們可避免在每次迭代中、於內存位置進行加載。此外這項針對 Pass 的改進,還有助於修復此前一個 bug 報告中提到的錯過 register promotion 的問題。

2.png

對於不了解編譯器內部原理、僅對凈收益感興趣的用戶,Todorovic 也分享了一些基準測試結果。

在我們的 PostgreSQL 基準測試中,我們發現這一 LOAD 補丁的性能增益在 12% 左右。

此外從 XZ 壓縮、C-Ray 到 MrBayes 等各種其它工作負載的性能,通常也有幾個百分點的性能改進。

最後,這項加載性能改進補丁將和其它內容一道,成為明年 3 月正式發布的 LLVM Clang 14.0 穩定版的一部分。

(0)
上一篇 2021-12-07 11:43
下一篇 2021-12-07 11:44

相关推荐