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
- PyTorch 2: Faster Machine Learning Through Dynamic Python Bytecode Transformation and Graph Compilation 2024
- SparseTIR: Composable Abstractions for Sparse Compilation in Deep Learning 2023
- NNSmith: Generating Diverse and Valid Test Cases for Deep Learning Compilers 2023
- TensorIR: An Abstraction for Automatic Tensorized Program Optimization 2023
- AStitch: enabling a new multi-dimensional optimization space for memory-intensive ML training and inference on modern SIMT architectures 2022