/GL (전체 프로그램 최적화)

전체 프로그램 최적화를 사용합니다.

구문

/GL[-]

설명

전체 프로그램 최적화를 사용하면 컴파일러가 프로그램의 모든 모듈에 대한 정보를 사용하여 최적화를 수행할 수 있습니다. 전체 프로그램 최적화가 없으면 모듈별(컴파일랜드) 기준으로 최적화가 수행됩니다.

전체 프로그램 최적화는 기본적으로 해제되어 있으며 명시적으로 사용하도록 설정해야 합니다. 그러나 .을 사용하여 명시적으로 사용하지 않도록 설정할 수도 있습니다 /GL-.

모든 모듈에 대한 정보를 사용하여 컴파일러는 다음을 수행할 수 있습니다.

  • 함수 경계를 넘어 레지스터 사용을 최적화합니다.

  • 글로벌 데이터에 대한 수정 사항을 추적하여 로드 및 저장소 수를 줄이는 더 나은 작업을 수행합니다.

  • 포인터 역참조에 의해 수정된 가능한 항목 집합을 추적하여 필요한 로드 및 저장소를 줄입니다.

  • 함수가 다른 모듈에 정의된 경우에도 모듈의 함수를 인라인합니다.

.obj 로 생성된 파일은 /GL 링커 유틸리티(예: EDITBINDUMPBIN.)에서 사용할 수 없습니다.

프로그램을 /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 하세요.

프로그래밍 방식으로 이 링커 옵션을 설정하려면

참고 항목

MSVC 컴파일러 옵션
MSVC 컴파일러 명령줄 구문