Regressão de Otimização do Clang: Funções Inline Causam Queda de Desempenho em Benchmark C++
2025-02-19
Um benchmark C++ revelou uma regressão de desempenho na otimização de funções inline do Clang. Quando a função `increment` foi inline, falhas na previsão de desvios resultaram em uma queda de desempenho de aproximadamente 5 vezes em comparação com a versão não inline. O `perf stat` confirmou que as previsões erradas de desvios foram as culpadas. Curiosamente, compilar com o toolchain Zig melhorou significativamente o desempenho, sugerindo uma possível regressão no Clang 19. O problema foi relatado no repositório Clang/LLVM, com investigação inicial apontando para uma compensação entre as passagens de otimização SROA e SimplifyCFG.
Desenvolvimento