Program

Keynote:

Technical Talks:

  • Clang & Linux: Asm Goto with Outputs - Bill Wendling, Nick Desaulniers [ Video ] [ Slides ]
  • LLVM Libc: Current Status, Challenges and Future Plans - Siva Chandra Reddy, Guillaume Chatelet, Paula Asker, David Finkelstein [ Video ] [ Slides ]
  • Branch Coverage: Squeezing more out of LLVM Source-based Code Coverage - Alan Phipps [ Video ] [ PDF Slides ] [ PPT Slides ]
  • Memory tagging in LLVM and Android - Evgenii Stepanov, Kostya Serebryany, Peter Collingbourne, Mitch Phillips [ Video ] [ Slides ]
  • Towards a representation of arbitrary alias graph in LLVM IR for Fortran code - Kelvin Li; Tarique Islam [ Video ] [ Slides ]
  • Control-flow sensitive escape analysis in Falcon JIT - Artur Pilipenko [ Video ] [ Slides ]
  • Extending Clang for checking compliance with automotive coding standards - Milena Vujosevic Janicic [ Video ] [ Slides ]
  • An Update on Optimizing Multiple Exit Loops - Philip Reames [ Video] [ Slides ]
  • Code Size Compiler Optimizations and Techniques - Aditya Kumar [ Video ] [ Slides ]
  • Accelerate Matrix Multiplication Using the New POWER Outer Product Instructions - Baptiste Saleil, João Carvalho [ Video ] [ Slides ]
  • CIL : Common MLIR Dialect for C/C++ and Fortran - Prashantha NR, Vinay Madhusudan, Ranjith Kumar, Srihari [ Video ] [ Slides ]
  • Building compiler extension for LLVM 10.0.1 - Serge Guelton [ Video ] [ Slides ]
  • LLVM-based mutation testing for C and C++ - Alex Denisov; Stanislav Pankevich [ Video ] [ Slides ]
  • Matrix Support in Clang and LLVM- Florian Hahn [ Video ] [ Slides ]
  • Adding CUDA® Support to Cling: JIT Compile to GPUs - Simeon Ehrig [ Video ] [ Slides ]
  • The Present and Future of Interprocedural Optimization in LLVM - Johannes Doerfert, Brian Homerding, Stefanos Baziotis, Stefan Stipanovic, Hideto Ueno, Kuter Dinel, Shinji Okumura, Luofan Chen [ Video ] [ PDF Slides ] [ PPT Slides ]
  • Pushing Back Lit’s Boundaries to Test Libc++ - L. Dionne [ Video ] [ Slides ]
  • Evolving “convergent”: Lessons from Control Flow in AMDGPU - N. Hähnle [ Video ] [ [Slides]../slides/Hahnle-Evolving_convergent_Lessons_from_Control_Flow_in_AMDGPU.pdf) ]
  • How to update debug info in compiler transformations - A. Prantl; V. Kumar [ Video ] [ Slides ]
  • Proposal for A Framework for More Effective Loop Optimizations - M. Kruse; H. Finkel [ Video ] [ Slides ]
  • Changing Everything With Clang Plugins: A Story About Syntax Extensions, Clang’s AST, and Quantum Computing = H. Finkel; A. Mccaskey [ Video ] [ Slides ]
  • (OpenMP) Parallelism-Aware Optimizations - J. Doerfert; S. Stipanovic; H. Mosquera; J. Chesterfield; G. Georgakoudis; J. Huber [ Video ] [ Slides ]
  • Checked C: Adding memory safety support to LLVM - M. Grang; K. Kjeer [ Video ][ Slides ]

Tutorials:

  • Everything I know about debugging LLVM - N. Desaulniers [ Video ] [ Slides ]
  • LLVM in a Bare Metal Environment - H. Qadeer [ Video ] [ Slides ]
  • LLVM PGO Instrumentation: Example of CallSite-Aware Profiling - P. Kosov; S. Yakushkin [ Video ] [ Slides ]
  • Understanding Changes made by a Pass in the Opt Pipeline. - J. Schmeiser [ Video ] [ Slides ]
  • Using clang-tidy for customized checkers and large scale source tree refactoring - V. Bridgers [ Video ] [ Slides ]
  • Finding Your Way Around the LLVM Dependence Analysis Zoo - S. Baziotis; S. Moll [ Video ] [ Slides ] [ Slides PPT ]
  • Using the clang static analyzer to find bugs - V. Bridgers [ Video ] [ Slides PDF ] [ Slides PPT ]
  • A Deep Dive into the Interprocedural Optimization Infrastructure - J. Doerfert; B. Homerding; S. Baziotis; S. Stipanovic; H. Ueno; K. Dinel; S. Okumura; L. Chen [ Video ] [ Slides ]
  • MLIR Tutorial - M. Amini [ Video ] [ Slides ]

Lightning Talks:

  • Finding and Outlining Similarities in LLVM IR - A. Litteken [ Video ] [ Slides ]
  • A fast algorithm for global code motion of congruent instructions - A. Kumar; S. Pop [ Video ] [ Slides ]
  • From Implicit Pass Dependencies to Effectiveness Prediction - H. Ueno; J. Doerfert; E. Park; G. Georgakoudis; T. Jayatilaka; S. Badruswamy [ Video ] [ Slides ]
  • Using Clang as An Alternative C/C++ Frontend of The ROSE Source-to-Source Compiler - A. Wang; P. Lin; C. Liao; Y. Yan [ Video ] [ Slides ]
  • OpenACC support in Flang with a MLIR dialect - V. Clement; J. Vetter [ Video ] [ Slides ]
  • Fragmenting the DWARF to Enable Dead Debug Data Elimination - J. Henderson [ Video ] [ Slides ] [ PPT Slides ]
  • Source-based Code Coverage for Embedded Use Cases - A. Phipps; C. Addison [ Video ] [ Slides ] [ PPT Slides ]
  • pre-merge checks for LLVM - M. Goncharov; C. Kühnel [ Video ] [ Slides ]
  • Getting stack size just right on XCore - J. McCrea [ Video ] [ Slides ]
  • Compile Faster with the Program Repository and ccache - Y. Yi; P. Bowen-Huggett [ Video ] [ Slides ]
  • GWP-TSan: Zero-Cost Detection of Data Races in Production - M. Morehouse; K. Serebryany [ Video ] [ Slides ]
  • CompilerInvocation to -cc1 command line - D. Grumberg [ Video ] [ Slides ]
  • Outer-Loop Vectorization Legality Analysis for RV: One Step Closer to a Powerful Vectorizer for LLVM - S. Baziotis [ Video ] [ Slides ]
  • Flang Update - S. Scalpone [ Video ] [ Slides ]
  • Code Feature Analysis, Tracking, and Future Usage - T. Jayatilaka; J. Doerfert; G. Georgakoudis; E. Park; H. Ueno; S. Badruswamy [ Video ] [ Slides ]
  • Lowering XLA HLO using RISE - A Functional Pattern-based MLIR Dialect - M. Lücke; A. Smith; M. Steuwer [ Video ] [ Slides]
  • SYCL for CUDA: An overview of implementing PI for CUDA - A. Johnston [ Video ] [ Slides ]
  • Extending LLDB to More Scripting Languages - J. Devlieghere [ Video ] [ Slides ]
  • Adding a Subtarget Support to LLVM in Five Minutes - E. Yakubova [ Video ] [ Slides ]

Birds of a Feather:

  • ClangBuiltLinux BoF - N. Desaulniers
  • Loop Optimization BoF - M. Kruse; K. Barton
  • LLVM Just-In-Time Compilers BoF - L. Hames
  • Code Size Optimization - S. Bartell; V. Adve

Student Research Competition

  • Enzyme: High-Performance Automatic Differentiation of LLVM - W. Moses; V. Churavy
  • SPAM: Stateless Permutation of Application Memory with LLVM - M. Ziad; M. Arroyo; S. Sethumadhavan
  • HPVM-FPGFA: Leveraging Compiler Optimizations for Hardware-Agnostic FPGA Programming - A. Ejjeh; K. Kanwar; M. Kotsifakou; V. Adve; R. Rutenbar
  • Guided Linking: shrinking and speeding up dynamically linked code - S. Bartell; V. Adve
  • ApproxTuner: A Compiler and Runtime System for Adaptive Approximations - H. Sharif; M. Kotsifakou; Y. Zhao; A. Kothari; B. Schreiber; E. Wang; Y. Sarita; N. Zhao; K. Joshi; V. Adve; S. Misailovic; S. Adve

Posters:

  • CIRCT: MLIR for Hardware Design - A. Wilson; S. Neuendorffer; C. Lattner;
  • An Approach to Generate Correctly Rounded Math Libraries for New Floating Point Variants - J. Lim; M. Aanjaneya; J. Gustafson; S. Nagarakatte
  • Compiling a Higher-Order Smart Contract Language to LLVM - V. Nagaraj; J. Johannsen; A. Trunov; G. Pirlea; A. Kumar; I. Sergey
  • To -jInfinity & Beyond - W. Moses; K. Kwok; L. Sha
  • llvm-diva – Debug Information Visual Analyzer - C. Enciso
  • Quickly Finding RISC-V Code Quality Issues with Differential Analysis - L. Marques
  • Error estimates of floating-point numbers and Jacobian matrix computation in Clad - V. Vassilev; A. Penev; R. Shakhov
  • Data Dependency using MSSA: Analysis and Contrast - R. Sharma; W. Tsang
  • Connecting Clang to The ROSE Source-to-Source Compiler - A. Wang; P. Lin; C. Liao; Y. Yan
  • Incremental Compilation Support in Clang - V. Vassilevv; D. Lange
  • Enzyme: High-Performance Automatic Differentiation of LLVM - W. Moses; V. Churavy