Home · ASPLOS 2024 · Compilers & Programming Languages

Validating JVM Compilers via Maximizing Optimization Interactions

Zifan Xie, Ming Wen, Shiyu Qiu and Hai Jin

Conference
ASPLOS 2024
Published
2024
Pages
345-360
Citations
0

The authors' abstract

This is the paper's own summary, in the paper's own words. It is dense on purpose — abstracts are written to compress.

This paper introduces the concept of optimization interaction, which refers to the practice in modern compilers where multiple optimization phases, such as inlining, loop unrolling, and dead code elimination, are not completed in a one-off sequential order while being interacted instead. Therefore, while optimizing a certain phase, the compiler needs to ensure that the results of other optimization phases will not be disrupted, as this could lead to compiler crashes or unpredictable results. To verify whether compilers can correctly handle the optimization process across various phases, we propose MopFuzzer, which aims at maximizing runtime optimization interactions during fuzzing. Specifically, it encourages the JVM to perform multi-stage optimizations and verifies the correctness of the compiler's optimized code through differential testing. Currently, MopFuzzer has implemented 13 mutators, and each is intended to trigger a certain optimization behavior. Such mutators are applied iteratively to the same program point, aiming to maximize optimization interactions. Subsequently, the testing process is guided by a novel method based on profile data, which records the optimization behaviors performed by the compiler. The guidance enables MopFuzzer to generate mutants that are able to maximize optimization behaviors and their interactions. Our evaluation has led to 59 bug reports for widely used production JVMs, OpenJDK and OpenJ9.

The plain-English explainer is not written yet

When it is, it will replace the abstract above and walk through six questions in order: what problem the paper attacks, what people did before, why that was not good enough, what the paper's idea is, why that idea works, and what the measurements actually showed. Terms get defined the first time they appear.

Related papers on Compilers & Programming Languages

See all 162 →