/GL(전체 프로그램 최적화)
전체 프로그램 최적화를 사용합니다.
/GL[-]
설명
전체 프로그램 최적화를 사용하면 컴파일러는 프로그램 내의 모든 모듈에 대한 정보를 사용하여 최적화를 수행합니다.전체 프로그램 최적화를 사용하지 않으면 모듈(컴파일)별로 최적화가 수행됩니다.
전체 프로그램 최적화는 기본적으로 설정되어 있지 않으므로 명시적으로 설정해야 합니다.그러나 /GL-를 사용하여 이 옵션을 명시적으로 해제할 수도 있습니다.
모든 모듈에 대한 정보를 사용하여 컴파일러는 다음과 같은 작업을 수행할 수 있습니다.
함수에 관계 없이 레지스터 사용을 최적화할 수 있습니다.
전역 데이터의 수정 사항을 더 효율적으로 추적하여 로드 및 저장 횟수를 줄일 수 있습니다.
포인터 역참조로 수정된 항목의 가능한 집합을 더 효율적으로 추적하여 로드 및 저장 횟수를 줄일 수 있습니다.
다른 모듈에서 정의된 함수도 모듈 내에 포함할 수 있습니다.
/GL을 사용하여 생성한 .obj 파일은 EDITBIN 및 DUMPBIN 같은 링커 유틸리티에서는 사용할 수 없습니다.
/GL 및 /c를 사용하여 프로그램을 컴파일하려면 /LTCG 링커 옵션을 사용하여 출력 파일을 만들어야 합니다.
/ZI는 /GL과 함께 사용할 수 없습니다.
현재 버전에서 /GL을 사용하여 생성한 파일 형식은 Visual C++의 이후 버전에서 읽지 못할 수도 있습니다.사용자가 현재 또는 미래에 사용할 Visual C++의 모든 버전의 .lib 파일 사본을 제공하지 않으려면 /GL을 사용하여 생성한 .obj 파일로 구성되는 .lib 파일을 제공해서는 안 됩니다.
/GL을 사용하여 .obj 파일을 생성한 동일한 컴퓨터에서 .lib 파일이 링크되지 않는 경우, /GL을 사용하여 생성한 .obj 파일과 미리 컴파일한 헤더 파일을 사용하여 .lib 파일을 빌드해서는 안 됩니다..obj 파일에 있는 미리 컴파일한 헤더 파일의 정보는 링크할 때 필요합니다.
사용할 수 있는 최적화 및 전체 프로그램 최적화의 제한에 대한 자세한 내용은 /LTCG를 참조하십시오./GL은 또한 프로필 기반 최적화를 사용할 수 있습니다. /LTCG를 참조하십시오.프로필 기반 최적화를 사용하여 컴파일하는 경우 프로필 기반 최적화에 따라 함수의 순서를 지정하려면 /Gy를 사용하거나 /Gy가 내포된 컴파일러 옵션을 사용하여 컴파일해야 합니다.
Visual Studio 개발 환경에서 이 링커 옵션을 설정하려면
- 개발 환경에서 /GL을 지정하는 방법에 대한 자세한 내용은 /LTCG(링크 타임 코드 생성)를 참조하십시오.
프로그래밍 방식으로 이 링커 옵션을 설정하려면
- 자세한 내용은 WholeProgramOptimization를 참조하십시오.