Questions marquées «strict-aliasing»


3
L'utilisation de ce pointeur provoque une étrange désoptimisation en boucle chaude
Je suis récemment tombé sur une étrange désoptimisation (ou plutôt une opportunité d'optimisation manquée). Considérez cette fonction pour un décompactage efficace des tableaux d'entiers de 3 bits en entiers de 8 bits. Il décompresse 16 ints à chaque itération de boucle: void unpack3bit(uint8_t* target, char* source, int size) { while(size …

13
En C ++, devrais-je prendre la peine de mettre en cache les variables ou laisser le compilateur faire l'optimisation? (Aliasing)
Considérez le code suivant ( pest de type unsigned char*et bitmap->widthest d'un type entier, qui est exactement inconnu et dépend de la version d'une bibliothèque externe que nous utilisons): for (unsigned x = 0; x < static_cast<unsigned>(bitmap->width); ++x) { *p++ = 0xAA; *p++ = 0xBB; *p++ = 0xCC; } Vaut-il …
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.