See also: Testing
Readings
- An empirical comparison of compiler testing techniques
- Automatic Test Case Reduction for OpenCL
- Automated Testing of Graphics Shader Compilers
- Automatic Testing of Symbolic Execution Engines via Program Generation and Differential Testing
- Causal Distance-Metric-Based Assistance for Debugging After Compiler Fuzzing
- Checking Correctness of Code Generator Architecture Specifications
- Compiler fuzzing, part 1
- Compiler Fuzzing through Deep Learning
- Compiler Fuzzing: How Much Does It Matter?
- Coverage Prediction for Accelerating Compiler Testing
- CUDAsmith: A Fuzzer for CUDA Compilers
- DATm: Diderot's Automated Testing Model.
- Deep Differential Testing of JVM Implementations
- DeepFuzz: Automatic Generation of Syntax Valid C Programs for Fuzz Testing
- Differential Testing for Software
- Effect-Driven QuickChecking of Compilers
- Extending Equivalence Transformation Based Program Generator for Random Testing of C Compilers
- Finding and Analyzing Compiler Warning Defects
- Finding and Understanding Bugs in C Compilers
- Fuzzing with Grammars
- Fuzzing the .NET JIT Compiler
- History-Guided Configuration Diversification for Compiler Test-Program Generation
- Improving the Utility of Compiler Fuzzers
- K-CONFIG: Using Failing Test Cases to Generate Test Cases in GCC Compilers
- Learning to Accelerate Compiler Testing
- Learning to Prioritize Test Programs for Compiler Testing
- Nautilus: Fishing for Deep Bugs with Grammars
- RandIR: Differential Testing for Embedded Compilers
- ReduKtor: How We Stopped Worrying About Bugs in Kotlin Compiler
- System Under Test: LLVM - https://systemundertest.org/llvm/
- Taming compiler fuzzers
- Test-Case Reduction for C Compiler Bugs
- Testing LLVM - http://blog.regehr.org/archives/1450
- Testing Static Analyses for Precision and Soundness
- The problem with differential testing is that at least one of the compilers must get it right
Performance Optimization
- Compiler Testing via a Theory of Sound Optimisations in the C11/C++11 Memory Model
- Detecting Arithmetic Optimization Opportunities for C Compilers by Randomly Generated Equivalent Programs
- Detecting Missed Arithmetic Optimization in C Compilers by Differential Random Testing
- Evaluating the Effects of Compiler Optimizations on Mutation Testing at the Compiler IR Level
- Finding Missed Compiler Optimizations by Differential Testing
- Lost in translation: Exposing hidden compiler optimization opportunities
- Random Testing of Compilers’ Performance Based on Mixed Static and Dynamic Code Comparison
- Reinforcing Random Testing of Arithmetic Optimization of C Compilers by Scaling up Size and Number of Expressions
- Scaling up Size and Number of Expressions in Random Testing of Arithmetic Optimization of C Compilers
- The Correctness-Security Gap in Compiler Optimization
Software
- CF3: Test suite for arithmetic optimization of C compilers
- Csmith, a random generator of C programs
- C-Reduce, a C program reducer
- Fuzzing LLVM libraries and tools - https://llvm.org/docs/FuzzingLLVM.html
- Adventures in Fuzzing Instruction Selection
- Structure-aware fuzzing for Clang and LLVM with libprotobuf-mutator
- gcc-for-llvm-testing: A modified GCC test suite suitable for testing non-GCC compilers
- GraphicsFuzz: A testing framework for automatically finding and simplifying bugs in graphics shader compilers.
- kscope
- lang_tester: Rust testing framework for compilers and VMs
- ldrgen: Liveness-driven random C code generator - https://github.com/gergo-/ldrgen
- llvm-mutate – mutate LLVM IR - http://eschulte.github.io/llvm-mutate/
- opt-fuzz: a simple implementation of bounded exhaustive testing for LLVM programs
- Orange3
- Orange4
- OutputCheck: A tool for checking tool output inspired by LLVM's FileCheck
- prog-fuzz: Compiler/source code fuzzing tool using AFL instrumentation
- Quest: A tool for testing C compilers - https://github.com/lindig/quest
- shader-compiler-bugs: A collection of shader compiler bugs - https://github.com/mc-imperial/shader-compiler-bugs
- yarpgen: Yet Another Random Program Generator
- a random C/C++ program generator, which produces correct runnable C/C++ programs
- specifically designed to trigger compiler optimization bugs and is intended for compiler testing
- https://github.com/intel/yarpgen
Talks
- A Year of Experience with Broad Based Continuous Testing with GCC
- Adventures in Fuzzing Instruction Selection
- Coverage-Directed Differential Testing of JVM Implementations
- Exposing Difficult Compiler Bugs With Random Testing
- FileCheck
- FileCheck Follies
- FileCheck: learning arithmetic
- Finding Missed Optimizations in LLVM (and other compilers)
- Getting Started with the LLVM Testing Infrastructure
- Testing and Qualification of Optimizing Compilers for Functional Safety
- Testing Language Implementations
Tags:
language development
Last modified 22 January 2025