위키득계정 ↗
기술

LLVM BOLT

LLVM BOLT기술
분류
링크 후 바이너리 최적화기
실행 이름
llvm-bolt
입력 예
x86-64와 AArch64 ELF
최적화 기반
실행 프로파일과 코드 배치
LLVM BOLT는 링크가 끝난 실행 파일의 코드 배치를 최적화하는 도구다. 실행 프로파일을 활용해 자주 사용되는 코드의 배치를 개선한다.

링크 뒤의 최적화

소스를 다시 최적화하는 단계와 달리 이미 만들어진 바이너리를 분석한다. 함수를 디스어셈블하고 제어 흐름을 복원한 뒤 코드의 배치를 바꾼다. 코드 배치에 의존하는 특수한 동작이 있다면 입력 요구 사항을 확인해야 한다.

대표성 있는 프로파일

실제로 어떤 경로가 자주 실행되는지 보여 주는 프로파일을 이용한다. 수집한 작업 부하가 운영 환경과 다르면 최적화 방향도 어긋날 수 있다. 사용한 바이너리와 정확히 대응하는 프로파일을 준비하는 것이 중요하다.

입력 조건과 검증

심벌 테이블과 재배치 정보 등 바이너리의 조건이 분석과 최적화 범위에 영향을 준다. 일부 컴파일러 옵션과의 비호환성도 안내된다. 변환 뒤에는 실제 기능과 성능을 검사하며, 특정 벤치마크의 향상을 모든 워크로드에 일반화하지 않는다.

관련 문서

Bloaty / LLVM MCA / Samply / Alive2