2.1.4. 링커 피드백

링커 피드백을 사용하여 사용하지 않는 함수를 효과적으로 제거할 수 있습니다. 다음과 같은 상황에서 사용하지 않는 함수 코드가 발생할 수 있습니다.

피드백이 있는 armlink 사용에 대한 자세한 내용은 RealView Compilation Tools 버전 3.0 링커 및 유틸리티 설명서를 참조하십시오.

컴파일러에서 링커 피드백을 사용하려면 코드를 별도의 단계로 링크해야 하며 armlink 옵션 --feedback filename을 지정하여 피드백 파일을 만들어야 합니다. 컴파일러 옵션 --feedback filename을 지정하여 이 파일을 컴파일러 입력으로 사용할 수 있습니다. 피드백 파일은 사용되지 않는 함수를 나열합니다.

피드백 파일이 없는 경우에도 --feedback filename 옵션을 지정할 수 있습니다. 그러면 피드백 파일의 유무에 상관없이 같은 빌드와 매이크파일을 사용할 수 있습니다. 예를 들면 다음과 같습니다.

armcc -c --feedback unused.txt test.c -o test.o
armlink --feedback unused.txt test.o -o test.axf

응용 프로그램을 처음으로 빌드할 때 일반적으로 컴파일은 수행되지만 컴파일러에서는 지정한 피드백 파일을 읽을 수 없음(파일이 없으므로)을 경고합니다. 그러면 링크 명령으로 피드백 파일이 만들어 지고 이미지도 빌드됩니다. 이후의 각 컴파일 단계에서 이전 링크 단계의 피드백 파일을 사용하여 확인된 사용되지 않는 모든 함수를 제거합니다.

--feedback 옵션에 대한 자세한 내용은 여러 최적화 옵션을 참조하십시오.

같은 피드백 파일을 사용하여 multi 컴파일을 실행하거나 단일 컴파일에 여러 소스 파일을 지정할 수 있습니다. 피드백 파일은 사용하지 않는 함수가 포함된 소스 파일을 주석으로 작성하고 컴파일러에서 사용하지 않습니다. 컴파일러는 피드백 파일에서 확인된 사용되지 않은 각 함수를 해당 오브젝트 파일의 각 ELF 섹션에 배치합니다.

Note

링커 피드백을 최대한 이용하려면 전체 컴파일 및 링크 작업을 두 번 이상 실행해야 합니다. 그러나, 일반적으로 이전 빌드의 피드백을 사용하는 단일 컴파일 및 링크로도 충분합니다.

피드백 파일에는 기존 빌드 정보가 포함되기 때문에 현재 시점에서는 더 이상 유효하지 않은 정보가 포함되어 있을 수 있습니다. 즉, 이전에 사용하지 않는 것으로 표시된 함수가 현재 소스에 사용되고 있을 수 있습니다. 사용되지 않는 것으로 식별된 함수 소스가 현재 소스에서도 사용되지 않는 경우에만 링커가 해당 코드를 제거합니다. 이런 이유로 링커 피드백은 안전한 최적화 방법이지만 코드 크기를 크게 하기도 합니다.

Copyright © 2002-2006 ARM Limited. All rights reserved.ARM DUI 0205GK
Non-Confidential