Régression d'optimisation de Clang : l'intégration des fonctions nuit aux performances dans un benchmark C++

2025-02-19

Un benchmark C++ a révélé une régression de performance dans l'optimisation des fonctions intégrées de Clang. Lorsque la fonction `increment` a été intégrée, les échecs de prédiction de branche ont entraîné une baisse des performances d'environ 5 fois par rapport à la version non intégrée. `perf stat` a confirmé que les prédictions de branche incorrectes étaient les coupables. Curieusement, la compilation avec la chaîne d'outils Zig a considérablement amélioré les performances, suggérant une régression potentielle dans Clang 19. Le problème a été signalé sur le dépôt Clang/LLVM, l'enquête initiale indiquant un compromis entre les passes d'optimisation SROA et SimplifyCFG.

Développement