«strict-aliasing» 태그된 질문


3
이 포인터를 사용하면 핫 루프에서 이상한 최적화 해제가 발생합니다.
최근에 이상한 최적화 해제 (또는 최적화 기회를 놓친 경우)를 발견했습니다. 3 비트 정수에서 8 비트 정수로 구성된 배열을 효율적으로 풀기 위해이 함수를 고려하십시오. 각 루프 반복에서 16 개의 int를 풉니 다. void unpack3bit(uint8_t* target, char* source, int size) { while(size > 0){ uint64_t t = *reinterpret_cast<uint64_t*>(source); target[0] = t & …

13
C ++에서 변수를 캐시해야합니까, 아니면 컴파일러가 최적화를 수행하도록해야합니까? (앨리어싱)
다음 코드를 고려하십시오 ( p유형 unsigned char*이며 bitmap->width정수 유형이며 정확히 알 수 없으며 사용중인 일부 외부 라이브러리의 버전에 따라 다릅니다). for (unsigned x = 0; x < static_cast<unsigned>(bitmap->width); ++x) { *p++ = 0xAA; *p++ = 0xBB; *p++ = 0xCC; } 최적화 할 가치가 있습니까 [..] 다음과 같이 작성하여보다 효율적인 결과를 …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.