Visual Studio 2022 17.7 : MSVC ARM64 est optimisé

Par:
ftonic

ven, 29/09/2023 - 08:56

Microsoft vient d'annoncer des améliorations des performances du compilateur MSVC ARM64 dans la v17.7 de l'IDE. Les optimisations concernent deux éléments : ISA et SIMD ISA. Ce sont donc des optimisations très précises sur des opérations ciblées. 

Le blog évoque un exemple simple : 

void test(float * __restrict a, float * __restrict b, float c) {>
for (int i = 0; i < 4; i++)
        a[i] = b[i] * c;
}


Le code généré en 17.6 est :

        dup         v17.4s,v0.s[0]
        ldr         q16,[x1]
        fmul        v16.4s,v17.4s,v16.4s
        str         q16,[x0]


En 17.7, le code généré est le suivant :

        ldr         q16,[x1]
        fmul        v16.4s,v16.4s,v0.s[0]
        str         q16,[x0]


Les instructions SIMD seront mieux supportées et compilées. Les équipes continueront l'optimisation dans les prochaines versions.

Tous les détails : devblogs.microsoft.com/cppblog/msvc-arm64-optimizations-in-visual-studio-2022-17-7