컴파일러
링크 시 최적화(LTO)로 가능해지는 최적화로 가장 적절한 것은?
- A서로 다른 파일의 함수끼리도 인라인 전개 등을 할 수 있다
- B하나의 함수 안의 루프만 전개할 수 있게 된다
- C링크 처리가 불필요해져 오브젝트 파일을 그대로 실행할 수 있다
정답과 해설 보기
정답: A. 서로 다른 파일의 함수끼리도 인라인 전개 등을 할 수 있다
일반적인 컴파일에서는 소스 파일을 하나씩 따로 기계어로 변환하므로 다른 파일에 있는 함수의 내용이 보이지 않아, 파일을 넘나드는 인라인 전개나 상수 전파를 할 수 없습니다. LTO에서는 각 파일을 중간 표현인 채로 남겨 두고, 링크할 때 프로그램 전체를 한꺼번에 최적화합니다. 이로써 파일을 넘나드는 인라인 전개나 어디에서도 호출되지 않는 함수의 삭제 등이 가능해집니다. 하나의 함수 안의 루프 전개는 일반적인 컴파일에서도 할 수 있습니다.
- A. 올바릅니다. 파일을 넘나드는 최적화를 할 수 있게 됩니다.
- B. 함수 안의 루프 전개는 일반적인 컴파일에서도 할 수 있습니다.
- C. 링크는 여전히 필요합니다.