Diagnosing Compiler Performance by Comparing Optimization Decisions
Modern compilers apply a set of optimization passes aiming to speed up the generated code. The combined effect of individual optimizations is difficult to predict. Thus, changes to a compiler's code may hinder the performance of generated code as an unintended consequence.
Performance regressions in compiled code are often related to misapplied optimizations. The regressions are hard to investigate, considering the vast number of compilation units and applied optimizations. A compilation unit consists of a root method and inlined methods. Thus, a method may be part of several compilation units and may be optimized differently in each. Moreover, inlining decisions are not invariant across runs of the virtual machine (VM).
We propose to solve the problem of diagnosing performance regressions by capturing the compiler's optimization decisions. We do so by representing the applied optimization phases, optimization decisions, and inlining decisions in the form of trees. This paper introduces an approach utilizing tree edit distance (TED) to detect optimization differences in a semi-automated way. We present an approach to compare optimization decisions in differently inlined methods. We employ these techniques to pinpoint the causes of performance problems in various benchmarks of the Graal compiler.
Sun 22 OctDisplayed time zone: Lisbon change
11:00 - 12:30 | |||
11:00 22mTalk | Evaluating YJIT’s Performance in a Production Context: A Pragmatic Approach MPLR Maxime Chevalier-Boisvert Shopify, Takashi Kokubun Shopify, Noah Gibbs Shopify, Si Xing "Alan" Wu Shopify, Aaron Patterson Shopify, Jemma Issroff Shopify DOI | ||
11:22 22mTalk | CacheIR: The Benefits of a Structured Representation for Inline Caches MPLR Jan de Mooij Mozilla, Matthew Gaudet Mozilla, Iain Ireland Mozilla, Nathan Henderson University of Alberta, Jose Nelson Amaral University of Alberta DOI File Attached | ||
11:45 22mTalk | Diagnosing Compiler Performance by Comparing Optimization Decisions MPLR Andrej Pečimúth Oracle Labs; Charles University, David Leopoldseder Oracle Labs, Petr Tuma Charles University DOI | ||
12:07 22mTalk | Morello MicroPython: A Python Interpreter for CHERI MPLR Duncan Lowther University of Glasgow, Dejice Jacob University of Glasgow, Jeremy Singer University of Glasgow DOI Pre-print |