Запитання з тегом «strict-aliasing»


3
Використання цього покажчика викликає дивну деоптимізацію в гарячому циклі
Нещодавно я натрапив на дивну деоптимізацію (а точніше, пропустив можливість оптимізації). Розглянемо цю функцію для ефективного розпакування масивів 3-бітових цілих чисел до 8-бітних цілих чисел. Він розпаковує 16 входів у кожній ітерації циклу: void unpack3bit(uint8_t* target, char* source, int size) { while(size > 0){ uint64_t t = *reinterpret_cast<uint64_t*>(source); target[0] = …

13
Чи потрібно мені в C ++ намагатися кешувати змінні чи дозволити компілятору робити оптимізацію? (Збудження)
Розглянемо наступний код ( pмає тип unsigned char*і bitmap->widthмає деякий цілий тип, саме той, який невідомий і залежить від того, яку версію зовнішньої бібліотеки ми використовуємо): for (unsigned x = 0; x < static_cast<unsigned>(bitmap->width); ++x) { *p++ = 0xAA; *p++ = 0xBB; *p++ = 0xCC; } Чи варто її оптимізувати …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.