toplogo
Sign In

MLIR 컴파일러를 위한 맞춤형 돌연변이 합성을 통한 퍼징


Core Concepts
SYNTHFUZZ는 기존 테스트 사례에서 맞춤형 돌연변이를 자동으로 합성하고 적용하여 MLIR 컴파일러의 다양한 입력을 생성할 수 있다.
Abstract
SYNTHFUZZ는 MLIR 컴파일러를 위한 새로운 퍼징 기법을 제안한다. MLIR은 모듈식 컴파일러 설계를 지원하는 새로운 중간 표현(IR) 프레임워크로, 개발자가 사용자 정의 IR을 정의할 수 있다. 이로 인해 각 IR에 대한 맞춤형 테스트 생성기를 작성하기 어려워진다. SYNTHFUZZ는 기존 테스트 사례에서 맞춤형 돌연변이를 자동으로 합성하고 적용한다. 이 맞춤형 돌연변이는 매개변수화되어 있어 대상 컨텍스트에 따라 구체화될 수 있다. 이를 통해 새로 도입된 MLIR 방언에 대한 맞춤형 입력 생성 로직을 수동으로 작성할 필요가 없어진다. SYNTHFUZZ는 Grammarinator, MLIRSmith, NeuRI 등 기존 기법과 비교했을 때 다음과 같은 성능 향상을 보였다: 평균 1.16배 높은 코드 커버리지 평균 1.51배 높은 방언 쌍 커버리지 일반 MLIR 제약 위반 비율을 0.57배 낮춤 또한 SYNTHFUZZ는 CIRCT 프로젝트에서 이전에 발견되지 않은 버그를 발견했다.
Stats
SYNTHFUZZ는 Grammarinator, MLIRSmith, NeuRI 대비 평균 1.22배, 29.78배, 17.47배 높은 브랜치 커버리지를 달성했다. SYNTHFUZZ는 Grammarinator, MLIRSmith, NeuRI 대비 평균 1.75배, 4.60배, 5.56배 높은 방언 쌍 커버리지를 달성했다.
Quotes
"SYNTHFUZZ는 새로 도입된 MLIR 방언에 대한 맞춤형 입력 생성 로직을 수동으로 작성할 필요가 없어진다." "SYNTHFUZZ는 일반 MLIR 제약 위반 비율을 0.57배 낮췄다."

Key Insights Distilled From

by Ben Limpanuk... at arxiv.org 04-29-2024

https://arxiv.org/pdf/2404.16947.pdf
Fuzzing MLIR by Synthesizing Custom Mutations

Deeper Inquiries

SYNTHFUZZ의 맞춤형 돌연변이 합성 기법을 다른 컴파일러 IR 또는 프로그래밍 언어에 적용할 수 있을까?

SYNTHFUZZ의 맞춤형 돌연변이 합성 기법은 다른 컴파일러 IR 또는 프로그래밍 언어에도 적용될 수 있습니다. 이 기법은 기존 테스트 케이스로부터 맞춤형 돌연변이를 추론하고 적용하는 방식으로 동작하며, 이는 새로운 언어나 IR에 대해서도 유용할 수 있습니다. 다른 언어나 IR에 대해서는 해당 언어나 IR의 문법과 규칙을 고려하여 SYNTHFUZZ의 알고리즘을 조정하고 적합한 파라미터화된 돌연변이를 생성할 수 있을 것입니다. 이를 통해 새로운 언어나 IR에 대한 효율적인 테스트 케이스 생성이 가능해질 것입니다.

SYNTHFUZZ가 발견한 CIRCT 프로젝트의 버그가 다른 MLIR 기반 프로젝트에서도 발생할 수 있는지 확인해볼 필요가 있다.

SYNTHFUZZ가 발견한 CIRCT 프로젝트의 버그가 다른 MLIR 기반 프로젝트에서도 발생할 가능성이 있습니다. 이는 MLIR 프로젝트들이 공통된 구조와 특성을 가지고 있기 때문입니다. SYNTHFUZZ는 MLIR의 다양한 dialects와 연관된 돌연변이를 생성하고 테스트하기 때문에, 다른 MLIR 기반 프로젝트에서도 유사한 버그가 발생할 수 있습니다. 따라서 SYNTHFUZZ의 결과와 발견한 버그에 대한 분석을 다른 MLIR 프로젝트에도 적용하여 유사한 문제를 발견할 수 있는지 확인하는 것이 중요할 것입니다.

SYNTHFUZZ의 매개변수화된 돌연변이가 실제로 컴파일러 내부 로직을 깊이 있게 테스트할 수 있는지 평가해볼 필요가 있다.

SYNTHFUZZ의 매개변수화된 돌연변이는 컴파일러 내부 로직을 깊이 있게 테스트할 수 있는 효과적인 방법일 수 있습니다. 이 기법은 기존 테스트 케이스로부터 돌연변이를 추론하고 적용함으로써 컴파일러의 다양한 부분을 효과적으로 탐색할 수 있습니다. 매개변수화된 돌연변이는 컨텍스트에 맞게 변형되어 적용되기 때문에, 컴파일러의 특정 부분에 대한 테스트 케이스를 생성하고 유효성을 검증하는 데 도움이 될 수 있습니다. 이를 통해 SYNTHFUZZ는 컴파일러의 내부 로직을 깊이 있게 탐색하고 테스트할 수 있는 강력한 도구로서 기능할 수 있을 것입니다.
0
visual_icon
generate_icon
translate_icon
scholar_search_icon
star