/Og(전역 최적화)
로컬 및 전역 최적화, 자동 레지스터 할당 및 루프 최적화를 제공합니다.사용되지 않습니다.
/Og
설명
사용할 수 있는 최적화는 다음과 같습니다.
로컬 및 전역 공통 부분식 제거
이 최적화에서는 공통 부분식의 값이 한 번 계산됩니다.다음 예제에서 세 식 사이에 b와 c의 값이 변경되지 않으면 컴파일러는 b + c 계산을 임시 변수에 할당하여 이 변수를 b + c 대신 사용할 수 있습니다.
a = b + c; d = b + c; e = b + c;
로컬 공통 부분식 최적화의 경우에는 컴파일러가 짧은 코드 섹션에서 공통 부분식을 검사합니다.전역 공통 부분식 최적화의 경우에는 컴파일러가 전체 함수에서 공통 부분식을 검색합니다.
자동 레지스터 할당
이 최적화를 사용하면 컴파일러에서 자주 사용하는 변수와 부분식을 레지스터에 저장할 수 있습니다. register 키워드는 무시됩니다.
루프 최적화
이 최적화는 루프 본문에서 불변 부분식을 제거합니다.최적 루프에는 루프를 실행할 때마다 값이 변경되는 식만 포함됩니다.다음 예제의 루프 본문에서 x + y 식은 변경되지 않습니다.
i = -100; while( i < 0 ) { i += x + y; }
최적화하면 x + y 식은 루프가 실행될 때마다 계산되지 않고 한 번만 계산됩니다.
i = -100; t = x + y; while( i < 0 ) { i += t; }
루프 최적화는 컴파일러에서 별칭을 사용할 수 없는 경우에 훨씬 더 효율적입니다. 이는 __restrict, noalias 또는 restrict를 사용하여 설정합니다.
[!참고]
optimize pragma에 g 옵션을 사용하면 함수별로 전역 최적화를 활성화하거나 비활성화할 수 있습니다.
/Og를 사용하여 명명된 반환 값 최적화를 활성화할 수도 있습니다. 이렇게 하면 반환 값을 기반으로 스택의 복사 생성자와 소멸자가 제거됩니다.자세한 내용은 /O1, /O2(크기 최소화, 속도 최대화)를 참조하십시오.
자세한 내용은 내장 함수 만들기(/Oi) 및 최대 최적화(/Ox)를 참조하십시오.
/Og는 사용되지 않습니다. /O1 또는 /O2를 사용하십시오.자세한 내용은 Deprecated Compiler Options를 참조하십시오.
Visual Studio 개발 환경에서 이 컴파일러 옵션을 설정하려면
프로젝트의 속성 페이지 대화 상자를 엽니다.자세한 내용은 방법: 프로젝트 속성 페이지 열기를 참조하십시오.
C/C++ 폴더를 클릭합니다.
명령줄 속성 페이지를 클릭합니다.
추가 옵션 상자에 컴파일러 옵션을 입력합니다.
프로그래밍 방식으로 이 컴파일러 옵션을 설정하려면
- 자세한 내용은 AdditionalOptions를 참조하십시오.