/GL
(전체 프로그램 최적화)
전체 프로그램 최적화를 사용합니다.
구문
/GL
[-
]
설명
전체 프로그램 최적화를 사용하면 컴파일러가 프로그램의 모든 모듈에 대한 정보를 사용하여 최적화를 수행할 수 있습니다. 전체 프로그램 최적화가 없으면 모듈별(컴파일랜드) 기준으로 최적화가 수행됩니다.
전체 프로그램 최적화는 기본적으로 해제되어 있으며 명시적으로 사용하도록 설정해야 합니다. 그러나 .을 사용하여 명시적으로 사용하지 않도록 설정할 수도 있습니다 /GL-
.
모든 모듈에 대한 정보를 사용하여 컴파일러는 다음을 수행할 수 있습니다.
함수 경계를 넘어 레지스터 사용을 최적화합니다.
글로벌 데이터에 대한 수정 사항을 추적하여 로드 및 저장소 수를 줄이는 더 나은 작업을 수행합니다.
포인터 역참조에 의해 수정된 가능한 항목 집합을 추적하여 필요한 로드 및 저장소를 줄입니다.
함수가 다른 모듈에 정의된 경우에도 모듈의 함수를 인라인합니다.
.obj
로 생성된 파일은 /GL
링커 유틸리티(예: EDITBIN
및 DUMPBIN
.)에서 사용할 수 없습니다.
프로그램을 /GL
컴파일하는 /c
경우 /LTCG 링커 옵션을 사용하여 출력 파일을 만들어야 합니다.
/ZI
를 사용하여 사용할 수 없습니다. /GL
현재 버전에서 생성된 /GL
파일 형식은 최신 버전의 Visual Studio 및 MSVC 도구 집합에서 읽을 수 없는 경우가 많습니다. 사용자가 사용할 것으로 예상되는 Visual Studio의 .lib
모든 버전에 대해 파일 복사본을 제공하려는 경우가 아니라면, 현재와 미래에는 생성된 /GL
파일로 구성된 .obj
파일을 배송 .lib
하지 마세요. 자세한 내용은 이진 호환성에 대한 제한을 참조 하세요.
.obj
파일이 파일을 생성 /GL
.obj
한 /GL
동일한 컴퓨터에 연결되어 있지 않으면 .lib
미리 컴파일된 헤더 파일에서 생성된 파일을 사용하여 파일을 빌드 .lib
할 수 없습니다. .obj
파일의 미리 컴파일된 헤더 파일의 정보는 링크 타임에 필요합니다.
사용 가능한 최적화 및 전체 프로그램 최적화의 제한 사항에 대한 자세한 내용은 다음을 참조하세요 /LTCG
. /GL
또한 프로필 기반 최적화를 사용할 수 있습니다. 프로필 기반 최적화를 위해 컴파일하고 프로필 기반 최적화에서 함수 순서를 지정하려면 /Gy를 의미하는 컴파일러 옵션을 사용하여 컴파일 /Gy
해야 합니다.
Visual Studio 개발 환경에서 이 링커 옵션을 설정하려면
개발 환경에서 지정 /GL
하는 방법에 대한 자세한 내용은 (링크 타임 코드 생성)을 참조 /LTCG
하세요.
프로그래밍 방식으로 이 링커 옵션을 설정하려면
- WholeProgramOptimization을(를) 참조하세요.