구조를 기준으로 비교
전역 항목의 순서나 지역 값의 이름 같은 중요하지 않은 차이를 무시할 수 있다. 텍스트 줄이 달라졌는지를 보는 대신 모듈의 구조 관계를 비교하는 것이 목적이다. 입력은 텍스트 중간 표현이나 비트코드로 제공할 수 있다.
제어 흐름의 영향
함수의 진입 블록부터 대응하는 기본 블록을 비교한다. 제어 흐름이 바뀌면 이후 블록의 대응도 크게 영향을 받을 수 있다. 작은 텍스트 수정과 큰 구조 차이의 관계를 해석할 때 이런 비교 방식의 특성을 고려해야 한다.
동등성 증명과 구분
모든 중요한 속성 차이를 진단하는 도구는 아니다. 연결 속성이나 함수 속성 등 보고되지 않는 차이가 있을 수 있고 출력 형식도 안정된 계약이 아니다. 차이가 없다는 결과를 모든 실행 의미가 같다는 증명으로 해석해서는 안 된다.
관련 문서
LLVM Dis / LLVM Opt / Alive2 / LLVM Reduce