위키득계정 ↗
기술

LLVM Diff

LLVM Diff기술
실행 이름
llvm-diff
분류
LLVM 모듈 구조 비교
주요 비교 대상
함수 정의와 기본 블록
출력 특성
안정된 형식 보장 없음
LLVM Diff는 두 LLVM 모듈의 구조를 비교하는 디버깅 도구다. 주로 함수 정의의 차이에 초점을 맞추며 단순한 텍스트 차이와 다른 관점으로 변화를 살펴본다.

구조를 기준으로 비교

전역 항목의 순서나 지역 값의 이름 같은 중요하지 않은 차이를 무시할 수 있다. 텍스트 줄이 달라졌는지를 보는 대신 모듈의 구조 관계를 비교하는 것이 목적이다. 입력은 텍스트 중간 표현이나 비트코드로 제공할 수 있다.

제어 흐름의 영향

함수의 진입 블록부터 대응하는 기본 블록을 비교한다. 제어 흐름이 바뀌면 이후 블록의 대응도 크게 영향을 받을 수 있다. 작은 텍스트 수정과 큰 구조 차이의 관계를 해석할 때 이런 비교 방식의 특성을 고려해야 한다.

동등성 증명과 구분

모든 중요한 속성 차이를 진단하는 도구는 아니다. 연결 속성이나 함수 속성 등 보고되지 않는 차이가 있을 수 있고 출력 형식도 안정된 계약이 아니다. 차이가 없다는 결과를 모든 실행 의미가 같다는 증명으로 해석해서는 안 된다.

관련 문서

LLVM Dis / LLVM Opt / Alive2 / LLVM Reduce