Pytania otagowane jako strict-aliasing


3
Użycie tego wskaźnika powoduje dziwną deoptimization w gorącej pętli
Niedawno natknąłem się na dziwną dezoptymalizację (a raczej straciłem okazję do optymalizacji). Rozważ tę funkcję w celu wydajnego rozpakowywania tablic 3-bitowych liczb całkowitych na 8-bitowe liczby całkowite. Rozpakowuje 16 int w każdej iteracji pętli: void unpack3bit(uint8_t* target, char* source, int size) { while(size > 0){ uint64_t t = *reinterpret_cast<uint64_t*>(source); target[0] …

13
Czy w C ++ powinienem zawracać sobie głowę buforowaniem zmiennych, czy pozwolić kompilatorowi na optymalizację? (Aliasing)
Rozważmy następujący kod ( pjest typu unsigned char*i bitmap->widthjest typu całkowitego, który jest dokładnie nieznany i zależy od wersji jakiejś zewnętrznej biblioteki, której używamy): for (unsigned x = 0; x < static_cast<unsigned>(bitmap->width); ++x) { *p++ = 0xAA; *p++ = 0xBB; *p++ = 0xCC; } Czy warto to zoptymalizować [..] Czy …
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.