2019 European LLVM Developers' MeetingTable of ContentsAboutProgramKeynoteMLIR: Multi-Level Intermediate Representation for Compiler InfrastructureTechnical TalksSwitching a Linux distribution's main toolchains to LLVM/ClangJust compile it: High-level programming on the GPU with JuliaThe Future of AST Matcher-based RefactoringA compiler approach to Cyber-SecurityCompiler Optimizations for (OpenMP) Target Offloading to GPUsHandling massive concurrency: Development of a programming model for GPU and CPUAutomated GPU Kernel Fusion with XLAThe Helium Haskell compiler and its new LLVM backendTesting and Qualification of Optimizing Compilers for Functional SafetyImproving Debug Information in LLVM to Recover Optimized-out Function ParametersLLVM IR in GraalVM: Multi-Level, Polyglot Debugging with SulongLLDB ReproducersSulong: An experience report of using the "other end" of LLVM in GraalVM.SYCL compiler: zero-cost abstraction and type safety for heterogeneous computingHandling all Facebook requests with JITed C++ codeclang-scan-deps: Fast dependency scanning for explicit modulesClang tools for implementing cryptographic protocols like OTRv4Implementing the C++ Core Guidelines'; Lifetime Safety Profile in ClangChanges to the C++ standard library for C++20Adventures with RISC-V Vectors and LLVMA Tale of Two ABIs: ILP32 on AArch64LLVM Numerics ImprovementsDOE Proxy Apps: Compiler Performance Analysis and Optimistic Annotation ExplorationLoop Fusion, Loop Distribution and their Place in the Loop Optimization PipelineTutorialsTutorial: Building a Compiler with MLIRBuilding an LLVM-based tool: lessons learnedLLVM IR Tutorial - Phis, GEPs and other things, oh my!Student Research CompetitionSafely Optimizing Casts between Pointers and IntegersAn alternative OpenMP Backend for PollyImplementing SPMD control flow in LLVM using reconverging CFGsFunction Merging by Sequence AlignmentCompilation and optimization with security annotationsAdding support for C++ contracts to ClangLightning TalksLLVM IR Timing Predictions: Fast Explorations via lliSimple Outer-Loop-Vectorization == LoopUnroll-And-Jam + SLPClacc 2019: An Update on OpenACC Support for Clang and LLVMTargeting a statically compiled program repository with LLVMDoes the win32 clang compiler executable really need to be over 21MB in size?Resolving the almost decade old checker dependency issue in the Clang Static AnalyzerAdopting LLVM Binary Utilities in ToolchainsMultiplication and Division in the Range-Based Constraint ManagerStatistics Based Checkers in the Clang Static AnalyzerFlang UpdateSwinging Modulo Scheduling together with Register AllocationLLVM for the Apollo Guidance ComputerCatch dangling inner pointers with the Clang Static AnalyzerCross translation unit test case reductionBoFsRFC: Towards Vector Predication in LLVM IRIPO --- Where are we, where do we want to go?LLVM binutilsRFC: Reference OpenCL Runtime library for LLVMLLVM Interface Stability Guarantees BoFClang Static Analyzer BoFLLVM Numerics ImprovementsLLVM Foundation BoFPostersClava: C/C++ source-to-source from CMake using LARASafely Optimizing Casts between Pointers and IntegersScalar Evolution Canon: Click! Canonicalize SCEV and validate it by Z3 SMT solver!Splendid GVN: Partial Redundancy Elimination for Algebraic SimplificationAn alternative OpenMP Backend for PollyDoes the win32 clang compiler executable really need to be over 21MB in size?Enabling Multi- and Cross-Language Verification with LLVMInstruction Tracing and dynamic codegen analysis to identify unique llvm performance issues.Handling all Facebook requests with JITed C++ codeImplementing SPMD control flow in LLVM using reconverging CFGsLLVM for the Apollo Guidance ComputerLLVM Miner: Text Analytics based Static Knowledge ExtractorFunction Merging by Sequence AlignmentCompilation and optimization with security annotationsLeveraging Polyhedral Compilation in Chapel CompilerLLVM on AVR - textual IR as a powerful tool for making "impossible" compilersVectorizing Add/Sub Expressions with SLPAdding support for C++ contracts to ClangOptimizing Nondeterminacy: Exploiting Race Conditions in Parallel ProgramsCode of ConductContactConference Dates: April 8-9, 2019Location: Le Plaza Brussels, 118-126 Boulevard Adolphe Max, 1000 Brussels, BelgiumEvent Site: https://llvm.org/devmtg/2019-04/AboutThe LLVM Developers’ Meeting is a bi-annual gathering of the entire LLVM Project community. The conference is organized by the LLVM Foundation and many volunteers within the LLVM community. Developers and users of LLVM, Clang, and related subprojects will enjoy attending interesting talks, impromptu discussions, and networking with the many members of our community. Whether you are a new to the LLVM project or a long time member, there is something for each attendee.To see the agenda, speakers, and register, please visit the Event Site here: https://llvm.org/devmtg/2019-04/What can you can expect at an LLVM Developers’ Meeting?Technical TalksThese 30 minute talks cover all topics from core infrastructure talks, to project’s using LLVM’s infrastructure. Attendees will take away technical information that could be pertinent to their project or general interest.TutorialsTutorials are 60 minute sessions that dive down deep into a technical topic. Expect in depth examples and explanations.Lightning TalksThese are fast 5 minute talks that give you a taste of a project or topic. Attendees will hear a wide range of topics and probably leave wanting to learn more.Birds of a Feather (BoF)BoF sessions are more formal guided discussions about a specific topic. The presenter typically has slides to guide the discussion. The audience is given the opportunity to participate in the discussion.Student Research CompetitionStudents present their research using LLVM or related subproject. These are usually 25 minute technical presentations with Q&A. The audience will vote at the end for the winning presentation. Students also present their research during the poster session.Poster SessionAn hour long poster session where selected posted are on display.Round Table DiscussionsInformal and impromptu discussions on a specific topic. During the conference there are set time slots where groups can organize to discuss a problem or topic.Evening ReceptionAfter a full day of technical talks and discussions, join your fellow attendees for an evening reception to continue the conversation and meet even more attendees.What types of people attend?Active developers of projects in the LLVM Umbrella (LLVM core, Clang, LLDB, libc++, compiler_rt, flang, lld, MLIR, etc).Anyone interested in using these as part of another project.Students and ResearchersCompiler, programming language, and runtime enthusiasts.Those interested in using compiler and toolchain technology in novel and interesting ways.The LLVM Developers’ Meeting strives to be the best conference to meet other LLVM developers and users.Please visit the event site for all the information, call for papers, and more: https://llvm.org/devmtg/2019-04/For future announcements or questions: Please visit the LLVM Discourse forums. Most posts are in the Announcements or Community categories and tagged with usllvmdevmtg.ProgramKeynoteMLIR: Multi-Level Intermediate Representation for Compiler InfrastructureTatiana Shpeisman (Google), Chris Lattner (Google) [Slides] [Video]Technical TalksSwitching a Linux distribution's main toolchains to LLVM/ClangBernhard Rosenkränzer (Linaro, OpenMandriva, LinDev) [Slides] [Video]Just compile it: High-level programming on the GPU with JuliaTim Besard (Ghent University) [Slides] [Video]The Future of AST Matcher-based RefactoringStephen Kelly [Slides] [Video]A compiler approach to Cyber-SecurityFrançois de Ferrière (STMicroelectronics) [Slides] [Video]Compiler Optimizations for (OpenMP) Target Offloading to GPUsJohannes Doerfert (Argonne National Laboratory), Hal Finkel (Argonne National Laboratory) [Slides] [Video]Handling massive concurrency: Development of a programming model for GPU and CPUMatthias Liedtke (SAP) [Slides] [Video]Automated GPU Kernel Fusion with XLAThomas Joerg (Google) [Slides] [Video]The Helium Haskell compiler and its new LLVM backendIvo Gabe de Wolff (University of Utrecht) [Slides] [Video]Testing and Qualification of Optimizing Compilers for Functional SafetyJosé Luis March Cabrelles (Solid Sands) [Slides] [Video]Improving Debug Information in LLVM to Recover Optimized-out Function ParametersNikola Prica (RT-RK), Djordje Todorovic (RT-RK), Ananthakrishna Sowda (CISCO), Ivan Baev (CISCO) [Slides] [Video]LLVM IR in GraalVM: Multi-Level, Polyglot Debugging with SulongJacob Kreindl (Johannes Kepler University Linz) [Slides]LLDB ReproducersJonas Devlieghere (Apple) [Slides] [Video]Sulong: An experience report of using the "other end" of LLVM in GraalVM.Roland Schatz (Oracle Labs), Josef Eisl (Oracle Labs) [Slides] [Video]SYCL compiler: zero-cost abstraction and type safety for heterogeneous computingAndrew Savonichev (Intel) [Slides] [Video]Handling all Facebook requests with JITed C++ codeHuapeng Zhou (Facebook), Yuhan Guo (Facebook) [Slides] [Video]clang-scan-deps: Fast dependency scanning for explicit modulesAlex Lorenz (Apple), Michael Spencer (Apple) [Slides] [Video]Clang tools for implementing cryptographic protocols like OTRv4Sofia Celi (Centro de Autonomia Digital) [Slides] [Video]Implementing the C++ Core Guidelines'; Lifetime Safety Profile in ClangGabor Horvath (Eotvos Lorand University), Matthias Gehre (Silexica GmbH), Herb Sutter (Microsoft) [Slides] [Video]Changes to the C++ standard library for C++20Marshall Clow (CppAlliance) [Slides] [Video]Adventures with RISC-V Vectors and LLVMRobin Kruppe (TU Darmstadt), Roger Espasa (Esperanto Technologies) [Slides] [Video]A Tale of Two ABIs: ILP32 on AArch64Tim Northover (Apple) [Slides] [Video]LLVM Numerics ImprovementsMichael Berg (Apple), Steve Canon (Apple) [Slides] [Video]DOE Proxy Apps: Compiler Performance Analysis and Optimistic Annotation ExplorationBrian Homerding (Argonne National Laboratory), Johannes Doerfert (Argonne National Laboratory) [Slides] [Video]Loop Fusion, Loop Distribution and their Place in the Loop Optimization PipelineKit Barton (IBM), Johannes Doerfert (Argonne National Lab), Hal Finkel (Argonne National Lab), Michael Kruse (Argonne National Lab) [Slides] [Video]TutorialsTutorial: Building a Compiler with MLIRAmini Mehdi (Google), Nicolas Vasilache (Google), Alex Zinenko (Google) [Slides] [Video]Building an LLVM-based tool: lessons learnedAlex Denisov [Slides] [Video]LLVM IR Tutorial - Phis, GEPs and other things, oh my!Vince Bridgers (Intel Corporation), Felipe de Azevedo Piovezan (Intel Corporation) [Slides] [Video]Student Research CompetitionSafely Optimizing Casts between Pointers and IntegersJuneyoung Lee (Seoul National University, Korea), Chung-Kil Hur (Seoul National University, Korea), Ralf Jung (MPI-SWS, Germany), Zhengyang Liu (University of Utah, USA), John Regehr (University of Utah, USA), Nuno P. Lopes (Microsoft Research, UK) [Slides] [Video]An alternative OpenMP Backend for PollyMichael Halkenhäuser (TU Darmstadt) [Slides] [Video]Implementing SPMD control flow in LLVM using reconverging CFGsFabian Wahlster (Technische Universität München), Nicolai Hähnle (Advanced Micro Devices) [Slides] [Video]Function Merging by Sequence AlignmentRodrigo Rocha (University of Edinburgh), Pavlos Petoumenos (University of Edinburgh), Zheng Wang (Lancaster University), Murray Cole (University of Edinburgh), Hugh Leather (University of Edinburgh) [Slides] [Video]Compilation and optimization with security annotationsSon Tuan Vu (LIP6), Karine Heydemann (LIP6), Arnaud de Grandmaison (ARM), Albert Cohen (Google) [Slides] [Video]Adding support for C++ contracts to ClangJavier López-Gómez (University Carlos III of Madrid), J. Daniel García (University Carlos III of Madrid) [Slides] [Video]Lightning TalksLLVM IR Timing Predictions: Fast Explorations via lliAlessandro Cornaglia (FZI - Research Center for Information Technology)Simple Outer-Loop-Vectorization == LoopUnroll-And-Jam + SLPDibyendu Das (AMD) [Slides]Clacc 2019: An Update on OpenACC Support for Clang and LLVMJoel E. Denny (Oak Ridge National Laboratory), Seyong Lee (Oak Ridge National Laboratory), Jeffrey S. Vetter (Oak Ridge National Laboratory) [Slides]Targeting a statically compiled program repository with LLVMPhil Camp (SN Systems (Sony Interactive Entertainment)), Russell Gallop (SN Systems (Sony Interactive Entertainment)) [Slides]Does the win32 clang compiler executable really need to be over 21MB in size?Russell Gallop (SN Systems), Greg Bedwell (SN Systems) [Slides]Resolving the almost decade old checker dependency issue in the Clang Static AnalyzerKristóf Umann (Ericsson Hungary, Eötvös Loránd University) [Slides]Adopting LLVM Binary Utilities in ToolchainsJordan Rupprecht (Google) [Slides]Multiplication and Division in the Range-Based Constraint ManagerÁdám Balogh (Ericsson Hungary Ltd.) [Slides]Statistics Based Checkers in the Clang Static AnalyzerÁdám Balogh (Ericsson Hungary Ltd.) [Slides]Flang UpdateSteve Scalpone (NVIDA / PGI / Flang) [Slides]Swinging Modulo Scheduling together with Register AllocationLama Saba (Intel) [Video]LLVM for the Apollo Guidance ComputerLewis Revill (University of Bath) [Video]Catch dangling inner pointers with the Clang Static AnalyzerRéka Kovács (Eötvös Loränd University) [Slides]Cross translation unit test case reductionRéka Kovács (Eötvös Loränd University) [Slides]BoFsRFC: Towards Vector Predication in LLVM IRSimon Moll (Saarland University), Sebastian Hack (Saarland University)IPO --- Where are we, where do we want to go?Johannes Doerfert (Argonne National Laboratory), Kit Barton (IBM Toronto Lab)LLVM binutilsJames Henderson (SN Systems (Sony Interactive Entertainment)), Jordan Rupprecht (Google)RFC: Reference OpenCL Runtime library for LLVMAndrew Savonichev (Intel), Alexey Sachkov (Intel)LLVM Interface Stability Guarantees BoFStephen KellyClang Static Analyzer BoFArtem Dergachev (Apple), Devin Coughlin (Apple), Gabor Horvath (Eotvos Lorand University)LLVM Numerics ImprovementsMichael Berg (Apple), Steve Canon (Apple)LLVM Foundation BoFLLVM Foundation Board of DirectorsPostersClava: C/C++ source-to-source from CMake using LARAJoão Bispo (FEUP/INESCTEC) [Slides]Safely Optimizing Casts between Pointers and IntegersJuneyoung Lee (Seoul National University, Korea), Chung-Kil Hur (Seoul National University, Korea), Ralf Jung (MPI-SWS, Germany), Zhengyang Liu (University of Utah, USA), John Regehr (University of Utah, USA), Nuno P. Lopes (Microsoft Research, UK) [Slides]Scalar Evolution Canon: Click! Canonicalize SCEV and validate it by Z3 SMT solver!Lin-Ya Yu (Xilinx), Alexandre Isoard (Xilinx)Splendid GVN: Partial Redundancy Elimination for Algebraic SimplificationLi-An Her (National Tsing Hua University), Jenq-Kuen Lee (National Tsing Hua University) [Slides]An alternative OpenMP Backend for PollyMichael Halkenhäuser (TU Darmstadt) [Slides]Does the win32 clang compiler executable really need to be over 21MB in size?Russell Gallop (SN Systems), G Bedwell (SN Systems) [Slides]Enabling Multi- and Cross-Language Verification with LLVMJack J. Garzella (University of Utah), Marek Baranowski (University of Utah), Shaobo He (University of Utah), Zvonimir Rakamaric (University of Utah) [Slides]Instruction Tracing and dynamic codegen analysis to identify unique llvm performance issues.Biplob (IBM) [Slides]Handling all Facebook requests with JITed C++ codeHuapeng Zhou (Facebook), Yuhan Guo (Facebook) [Slides]Implementing SPMD control flow in LLVM using reconverging CFGsFabian Wahlster (Technische Universität München), Nicolai Hähnle (Advanced Micro Devices) [Slides]LLVM for the Apollo Guidance ComputerLewis Revill (University of Bath)LLVM Miner: Text Analytics based Static Knowledge ExtractorHameeza Ahmed (NED University of Engineering and Technology), Muhammad Ali Ismail (NED University of Engineering and Technology) [Slides]Function Merging by Sequence AlignmentRodrigo Rocha (University of Edinburgh), Pavlos Petoumenos (University of Edinburgh), Zheng Wang (Lancaster University), Murray Cole (University of Edinburgh), Hugh Leather (University of Edinburgh) [Slides]Compilation and optimization with security annotationsSon Tuan Vu (LIP6), Karine Heydemann (LIP6), Arnaud de Grandmaison (ARM), Albert Cohen (Google) [Slides]Leveraging Polyhedral Compilation in Chapel CompilerSahil Yerawar (IIT Hyderabad), Siddharth Bhat (IIIT Hyderabad), Michael Ferguson (Cray Inc.), Philip Pfaffe (Karlsruhe Institute of Technology), Ramakrishna Upadrasta (IIT Hyderabad) [Slides]LLVM on AVR - textual IR as a powerful tool for making "impossible" compilersCarl Peto (Swift for Arduino/Petosoft)Vectorizing Add/Sub Expressions with SLPVasileios Porpodas (Intel Corporation, USA), Rodrigo C. O. Rocha (University of Edinburgh, UK), Evgueni Brevnov (Intel Corporation, USA), Luís F. W. Góes (PUC Minas, Brazil), Timothy Mattson (Intel Corporation, USA) [Slides]Adding support for C++ contracts to ClangJavier López-Gómez (University Carlos III of Madrid), J. Daniel García (University Carlos III of Madrid) [Slides]Optimizing Nondeterminacy: Exploiting Race Conditions in Parallel ProgramsWilliam S. Moses (MIT CSAIL)Code of ConductThe LLVM Foundation is dedicated to providing an inclusive and safe experience for everyone. We do not tolerate harassment of participants in any form. By registering for this event, we expect you to have read and agree to the LLVM Code of Conduct.ContactTo contact the organizer, email events@llvm.org.