ProGraML: A Graph-Based Program Representation for Data Flow Analysis and Compiler Optimizations
Abstract
Machine learning (ML) is increasingly seen as a viable approach for building compiler optimization heuristics, but many ML methods cannot replicate even the simplest of the data flow analyses that are critical to making good optimization decisions. We posit that if ML cannot do that, then it is insufficiently able to reason about programs. We formulate data flow analyses as supervised learning tasks and introduce a large open dataset of programs and their corresponding labels from several analyses. We use this dataset to benchmark ML methods and show that they struggle on these fundamental program reasoning tasks. We propose ProGraML - Program Graphs for Machine Learning - a language-independent, portable representation of program semantics. ProGraML overcomes the limitations of prior works and yields improved performance on downstream optimization tasks.
Cite
Text
Cummins et al. "ProGraML: A Graph-Based Program Representation for Data Flow Analysis and Compiler Optimizations." International Conference on Machine Learning, 2021.Markdown
[Cummins et al. "ProGraML: A Graph-Based Program Representation for Data Flow Analysis and Compiler Optimizations." International Conference on Machine Learning, 2021.](https://mlanthology.org/icml/2021/cummins2021icml-programl/)BibTeX
@inproceedings{cummins2021icml-programl,
title = {{ProGraML: A Graph-Based Program Representation for Data Flow Analysis and Compiler Optimizations}},
author = {Cummins, Chris and Fisches, Zacharias V. and Ben-Nun, Tal and Hoefler, Torsten and O’Boyle, Michael F P and Leather, Hugh},
booktitle = {International Conference on Machine Learning},
year = {2021},
pages = {2244-2253},
volume = {139},
url = {https://mlanthology.org/icml/2021/cummins2021icml-programl/}
}