위키득계정 ↗
기술

LLVM Reduce

LLVM Reduce기술
실행 이름
llvm-reduce
분류
테스트 입력 축소기
입력 형식
LLVM IR과 MIR
판정 기준
사용자 제공 테스트
LLVM Reduce는 오류 재현 조건을 유지하면서 LLVM 테스트 입력을 줄이는 도구다. 불필요한 부분을 제거해 컴파일러 문제를 분석하기 쉬운 형태로 만든다.

재현 조건을 남기기

후보 입력을 작게 바꾼 뒤 사용자가 지정한 테스트로 여전히 관심 있는 현상이 나타나는지 확인한다. 원래의 컴파일러 충돌이나 출력 차이가 유지되어야 유용한 결과다. 단순히 아무 오류나 발생하면 통과하도록 판정해서는 안 된다.

축소 변환 선택

입력 형식에 맞는 축소 패스를 실행하며 특정 패스만 선택하거나 제외할 수 있다. 처리 횟수와 병렬 실행 조건도 조절할 수 있다. 코드가 줄어드는 정도와 소요 시간은 입력 구조와 판정 테스트의 비용에 따라 달라진다.

최종 입력 검토

처음 입력부터 재현 조건을 만족해야 축소를 시작할 수 있다. 재현이 불안정하면 후보를 일관되게 평가하기 어렵다. 최종 결과의 유효성과 원래 현상을 다시 확인하고 컴파일러 버전 및 실행 옵션을 함께 보관한다.

관련 문서

C-Reduce / Cvise / LLVM Opt / LLVM LLC