반응형
Notice
Link
목록for루프 (1)
스택큐힙리스트
C++는 최적화 컴파일러가 for-조건에서의 부수 효과를 무시할 수 있는지 허용합니까?
일부 레거시 코드를 디버깅하는 동안 기이한 (내게는) 컴파일러 동작을 발견했습니다. 이제 C++ 사양에 어떤 절이 다음과 같은 최적화를 허용하는지 알고 싶습니다. 여기서는 for-조건에서 함수 호출의 부작용이 무시되는 경우입니다: void bar() { extern int upper_bound; upper_bound--; } void foo() { extern int upper_bound; // 다른 번역 단위에서 가져온 것으로 초기값은 대략 10입니다 for (int i = 0; i < upper_bound; ) { bar(); } } 결과적으로 어셈블리어에서 upper_bound가 레지스터에 유지되고 bar()에서의 upper_bound 감소가 영향을 미치지 않는 제어 경로가 있습니다. 제 컴파일러는..
카테고리 없음
2023. 11. 27. 12:09