A survey of compiler testing
Virtually any software running on a computer has been processed by a compiler or a
compiler-like tool. Because compilers are such a crucial piece of infrastructure for building …
compiler-like tool. Because compilers are such a crucial piece of infrastructure for building …
Echidna: effective, usable, and fast fuzzing for smart contracts
G Grieco, W Song, A Cygan, J Feist… - Proceedings of the 29th …, 2020 - dl.acm.org
Ethereum smart contracts---autonomous programs that run on a blockchain---often control
transactions of financial and intellectual property. Because of the critical role they play, smart …
transactions of financial and intellectual property. Because of the critical role they play, smart …
Compiler validation via equivalence modulo inputs
We introduce equivalence modulo inputs (EMI), a simple, widely applicable methodology for
validating optimizing compilers. Our key insight is to exploit the close interplay between (1) …
validating optimizing compilers. Our key insight is to exploit the close interplay between (1) …
Fuzzing: State of the art
H Liang, X Pei, X Jia, W Shen… - IEEE Transactions on …, 2018 - ieeexplore.ieee.org
As one of the most popular software testing techniques, fuzzing can find a variety of
weaknesses in a program, such as software bugs and vulnerabilities, by generating …
weaknesses in a program, such as software bugs and vulnerabilities, by generating …
A comprehensive study of deep learning compiler bugs
There are increasing uses of deep learning (DL) compilers to generate optimized code,
boosting the runtime performance of DL models on specific hardware. Like their traditional …
boosting the runtime performance of DL models on specific hardware. Like their traditional …
Random testing for C and C++ compilers with YARPGen
Compilers should not crash and they should not miscompile applications. Random testing is
an effective method for finding compiler bugs that have escaped other kinds of testing. This …
an effective method for finding compiler bugs that have escaped other kinds of testing. This …
Software testing: a research travelogue (2000–2014)
Despite decades of work by researchers and practitioners on numerous software quality
assurance techniques, testing remains one of the most widely practiced and studied …
assurance techniques, testing remains one of the most widely practiced and studied …
JIT-picking: Differential fuzzing of JavaScript engines
Modern JavaScript engines that power websites and even full applications on the Web are
driven by the need for an increasingly fast and snappy user experience. These engines use …
driven by the need for an increasingly fast and snappy user experience. These engines use …
Foundationdb: A distributed unbundled transactional key value store
FoundationDB is an open source transactional key value store created more than ten years
ago. It is one of the first systems to combine the flexibility and scalability of NoSQL …
ago. It is one of the first systems to combine the flexibility and scalability of NoSQL …
Automated testing of graphics shader compilers
We present an automated technique for finding defects in compilers for graphics shading
languages. key challenge in compiler testing is the lack of an oracle that classifies an output …
languages. key challenge in compiler testing is the lack of an oracle that classifies an output …