Clang最適化の回帰:C++ベンチマークにおけるインライン関数の逆効果
2025-02-19
C++ベンチマークで、Clangのインライン関数の最適化におけるパフォーマンスの回帰が明らかになりました。`increment`関数をインライン化すると、分岐予測の失敗により、インライン化されていないバージョンと比べて約5倍遅くなりました。`perf stat`で分岐予測のミスが原因であることが確認されました。興味深いことに、Zigツールチェーンでコンパイルするとパフォーマンスが大幅に向上し、Clang 19のバグを示唆しています。この問題はClang/LLVMのリポジトリに報告されており、初期調査ではSROAとSimplifyCFGの最適化パス間のトレードオフが原因である可能性が示唆されています。
開発