• Machine learning to schedule optimization passes

    From John R Levine@johnl@taugh.com to comp.compilers on Thu Aug 29 12:21:03 2024
    From Newsgroup: comp.compilers

    This paper used machine learning to select and order LLVM optimization
    passes. Apparently it worked pretty well.


    CompilerDream: Learning a Compiler World Model for General Code Optimization

    Effective code optimization in compilers is crucial for computer and
    software engineering. The success of these optimizations primarily depends
    on the selection and ordering of the optimization passes applied to the
    code. While most compilers rely on a fixed sequence of optimization
    passes, current methods to find the optimal sequence either employ impractically slow search algorithms or learning methods that struggle to generalize to code unseen during training. We introduce CompilerDream, a model-based reinforcement learning approach to general code optimization. CompilerDream comprises a compiler world model that accurately simulates
    the intrinsic properties of optimization passes and an agent trained on
    this model to produce effective optimization strategies. By training on a large-scale program dataset, CompilerDream is equipped to serve as a
    general code optimizer across various application scenarios and
    source-code languages. Our extensive experiments first highlight CompilerDream's strong optimization capabilities for autotuning, where it
    leads the CompilerGym leaderboard. More importantly, the zero-shot generalization ability of large-scale trained compiler world model and
    agent, excels across diverse datasets, surpassing LLVM's built-in
    optimizations and other state-of-the-art methods in both settings of value prediction and end-to-end code optimization.

    Full paper at: https://arxiv.org/abs/2404.16077

    Regards,
    John Levine, johnl@taugh.com, Taughannock Networks, Trumansburg NY
    Please consider the environment before reading this e-mail. https://jl.ly
    --- Synchronet 3.21b-Linux NewsLink 1.2
  • From Jon Chesterfield@jonathanchesterfield@gmail.com to comp.compilers on Thu Aug 29 20:45:17 2024
    From Newsgroup: comp.compilers

    This paper makes no mention of correctness or behaviour, only code size. Also no mention of compile time. I wonder how the results would compare to a baseline of running the usual O3 pipeline to fixpoint.



    Changing order of passes usually uncovers correctness bugs which papers of
    this genre rarely worry about. It's very easy to make programs smaller if you don't mind changing behaviour.



    Jon


    On Thu, 29 Aug 2024, 19:35 John R Levine, <[johnl@taugh.com](mailto:johnl@taugh.com)> wrote:

    This paper used machine learning to select and order LLVM optimization
    passes. Apparently it worked pretty well.


    CompilerDream: Learning a Compiler World Model for General Code Optimization

    Effective code optimization in compilers is crucial for computer and
    software engineering. ...

    Full paper at: <https://arxiv.org/abs/2404.16077>
    --- Synchronet 3.21b-Linux NewsLink 1.2