Generating Compiler Optimizations from Proofs

被引:1
|
作者
Tate, Ross [1 ]
Stepp, Michael [1 ]
Lerner, Sorin [1 ]
机构
[1] Univ Calif San Diego, San Diego, CA 92103 USA
关键词
Languages; Performance; Theory; HIGHER-ORDER;
D O I
10.1145/1707801.1706345
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We present an automated technique for generating compiler optimizations from examples of concrete programs before and after improvements have been made to them. The key technical insight of our technique is that a proof of equivalence between the original and transformed concrete programs informs us which aspects of the programs are important and which can be discarded. Our technique therefore uses these proofs, which can be produced by translation validation or a proof-carrying compiler, as a guide to generalize the original and transformed programs into broadly applicable optimization rules. We present a category-theoretic formalization of our proof generalization technique. This abstraction makes our technique applicable to logics besides our own. In particular, we demonstrate how our technique can also be used to learn query optimizations for relational databases or to aid programmers in debugging type errors. Finally, we show experimentally that our technique enables programmers to train a compiler with application-specific optimizations by providing concrete examples of original programs and the desired transformed programs. We also show how it enables a compiler to learn efficient-to-run optimizations from expensive-to-run super-optimizers.
引用
收藏
页码:389 / 402
页数:14
相关论文
共 50 条
  • [1] Generating Compiler Optimizations from Proofs
    Tate, Ross
    Stepp, Michael
    Lerner, Sorin
    [J]. POPL'10: PROCEEDINGS OF THE 37TH ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES, 2010, : 389 - 402
  • [2] Compiler Optimizations for OpenMP
    Doerfert, Johannes
    Finkel, Hal
    [J]. EVOLVING OPENMP FOR EVOLVING ARCHITECTURES, 2018, 11128 : 113 - 127
  • [3] COMPILER OPTIMIZATIONS FOR THE WAM
    TURK, AK
    [J]. LECTURE NOTES IN COMPUTER SCIENCE, 1986, 225 : 657 - 662
  • [4] Generating Plans from Proofs
    Benedikt, Michael
    Ten Cate, Balder
    Tsamoura, Efthymia
    [J]. ACM TRANSACTIONS ON DATABASE SYSTEMS, 2015, 40 (04):
  • [5] Phase Directed Compiler Optimizations
    Jain, Era
    Roy, Subhajit
    [J]. PROCEEDINGS OF 2016 IEEE 23RD INTERNATIONAL CONFERENCE ON HIGH PERFORMANCE COMPUTING (HIPC), 2016, : 270 - 279
  • [6] Incremental Verification of Compiler Optimizations
    Fedyukovich, Grigory
    Gurfinkel, Arie
    Sharygina, Natasha
    [J]. NASA FORMAL METHODS, NFM 2014, 2014, 8430 : 300 - 306
  • [7] GRAPHICAL VISUALIZATION OF COMPILER OPTIMIZATIONS
    BOYD, MR
    WHALLEY, DB
    [J]. JOURNAL OF PROGRAMMING LANGUAGES, 1995, 3 (02): : 69 - 94
  • [8] Detection of Optimizations Missed by the Compiler
    Zhang, Yi
    [J]. PROCEEDINGS OF THE 31ST ACM JOINT MEETING EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, ESEC/FSE 2023, 2023, : 2192 - 2194
  • [9] ADVANCED COMPILER OPTIMIZATIONS FOR SUPERCOMPUTERS
    PADUA, DA
    WOLFE, MJ
    [J]. COMMUNICATIONS OF THE ACM, 1986, 29 (12) : 1184 - 1201
  • [10] Understanding the behavior of compiler optimizations
    Lee, Han
    von Dincklage, Daniel
    Diwan, Amer
    Moss, J. Eliot B.
    [J]. SOFTWARE-PRACTICE & EXPERIENCE, 2006, 36 (08): : 835 - 844