深度数据流分析
Deep Data Flow Analysis
摘要:
编译器架构师在为编译器优化构建算法时越来越多地关注机器学习。自动启发式设计的承诺将编译器工程师从程序、体系结构和其他优化的复杂交互中解放出来,这是诱人的。然而,大多数机器学习方法甚至不能复制对数据流分析的最简单的抽象解释,而这些解释对于做出良好的优化决策至关重要。这种情况必须改变,机器学习才能成为编译器语言学的主导技术。为此,我们提出了ProGraML -机器学习的程序图-一种独立于语言的,可移植的深度学习整体程序语义表示。为了对当前和未来的编译器分析学习技术进行基准测试,我们引入了LLVM的461 k中间表示(IR)文件的开放数据集,涵盖了五种源程序设计语言,以及15.4M相应的数据流结果。我们制定的数据流分析作为一个MPNN,并表明,使用ProGraML,标准的分析可以学习,提高下游编译器优化任务的性能。
英文摘要:
Compiler architects increasingly look to machine learning when building heuristics for compiler optimization. The promise of automatic heuristic design, freeing the compiler engineer from the complex interactions of program, architecture, and other optimizations, is alluring. However, most machine learning methods cannot replicate even the simplest of the abstract interpretations of data flow analysis that are critical to making good optimization decisions. This must change for machine learning to become the dominant technology in compiler heuristics. To this end, we propose ProGraML - Program Graphs for Machine Learning - a language-independent, portable representation of whole-program semantics for deep learning. To benchmark current and future learning techniques for compiler analyses we introduce an open dataset of 461k Intermediate Representation (IR) files for LLVM, covering five source programming languages, and 15.4M corresponding data flow results. We formulate data flow analysis as an MPNN and show that, using ProGraML, standard analyses can be learned, yielding improved performance on downstream compiler optimization tasks.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。