2019 LLVM Developers' MeetingTable of ContentsAboutProgramKeynoteGenerating Optimized Code with GlobalISelEven Better C++ Performance and Productivity: Enhancing Clang to Support Just-in-Time Compilation of TemplatesTechnical TalksUsing LLVM's portable SIMD with ZigCode-Generation for the Arm M-profile Vector ExtensionAlive2: Verifying Existing OptimizationsThe clang constexpr interpreterSouper-Charging Peepholes with Target Machine InfoTransitioning the Networking Software Toolchain to Clang/LLVMLink Time Optimization For SwiftHot Cold Splitting Optimization Pass In LLVMMaking UB hurt less: security mitigations through automatic variable initializationPropeller: Profile Guided Large Scale Performance Enhancing RelinkerFrom C++ for OpenCL to C++ for accelerator devicesLLVM-Canon: Shooting for Clear DiffsBetter C++ debugging using Clang Modules in LLDBOwnership SSA and Semantic SILarm64e: An ABI for Pointer AuthenticationPorting by a 1000 Patches: Bringing Swift to WindowsThe Penultimate Challange: Constructing bug reports in the Clang Static AnalyzerAddress Spaces in LLVMAn MLIR Dialect for High-Level Optimization of FortranLoop-transformation #pragmas in the front-endOptimizing builds on Windows: some practical considerationsLLVM-Reduce for testcase reductionMemoro: Scaling an LLVM-based Heap profilerThe Attributor: A Versatile Inter-procedural Fixpoint Iteration FrameworkLLVM Tutorials: How to write Beginner-Friendly, Inclusive TutorialsMaturing an LLVM backend: Lessons learned from the RISC-V targetTutorialsGetting Started With LLVM: BasicsASTImporter: Merging Clang ASTsDeveloping the Clang Static AnalyzerWriting an LLVM Pass: 101Writing Loop Optimizations in LLVMThe Attributor: A Versatile Inter-procedural Fixpoint Iteration FrameworkGetting Started with the LLVM Testing InfrastructureAn overview of ClangAn overview of LLVMHow to Contribute to LLVMMy First Clang WarningStudent Research CompetitionCross-Translation Unit Optimization via Annotated HeadersQuantifying Dataflow Analysis with Gradients in LLVMFloating Point Consistency in the Wild: A practical evaluation of how compiler optimizations affect high performance floating point codeStatic Analysis of OpenMP Data Mapping for Target OffloadingPanelsPanel: Inter-procedural Optimization (IPO)The Loop Optimization Working GroupBirds of a FeatherLLDBTowards Better Code Generator Design and Unification for a Stack MachineDebug InfoLightning TalksGWP-ASan: Zero-Cost Detection of Memory Safety Bugs in ProductionWhen 3 Memory Models Aren’t Enough – OpenVMS on x86FileCheck: learning arithmetic-Wall Found Programming Errors and Engineering Effort to Enable Across a Large CodebaseHandling 1000s of OpenCL builtin functions in ClangNEC SX-Aurora as a Scalable Vector PlaygroundImplementing Machine Code Optimizations for RISC-VOptimization Remarks UpdateSupporting Regular and Thin LTO with a Single LTO Bitcode FormatTransitioning Apple’s Downstream llvm-project Repositories to the MonorepoA Unified Debug Server For Deeply Embedded Systems and LLDBState of LLDB and Deeply Embedded RISC-VSupporting a Vendor ABI Variant in ClangSpeculative Compilation in ORC JITOptimization Remarks for Human BeingsImproving the Optimized Debugging ExperienceImproving your TableGen DescriptionsLoom: Weaving Instrumentation for Program AnalysisClang Interface Stubs: Syntax Directed Stub Library Generation.Flang UpdateLowering tale: Supporting 64 bit pointers in RISCV 32 bit LLVM backendVirtual Function Elimination in LLVMMaking a Language Cross Platform: Libraries and ToolingGrafter - A use case to implement an embedded DSL in C++ and perform source to source traversal fusion transformation using ClangPostersTON Labs Backend for TON BlockchainLLVM Build Times Using a Program RepositoryRISC-V Bit Manipulation Support in the Clang/LLVM ToolchainAttributor, a Framework for Interprocedural Information DeductionOverflows Be Gone: Checked C for Memory SafetyCross-Translation Unit Optimization via Annotated HeadersQuantifying Dataflow Analysis with Gradients in LLVMFloating Point Consistency in the Wild: A practical evaluation of how compiler optimizations affect high performance floating point codeStatic Analysis of OpenMP Data Mapping for Target OffloadingNEC SX-Aurora as a Scalable Vector PlaygroundA Unified Debug Server For Deeply Embedded Systems and LLDBSpeculative Compilation in ORC JITLoom: Weaving Instrumentation for Program AnalysisLowering tale: Supporting 64 bit pointers in RISCV 32 bit LLVM backendCode of ConductContactConference Dates: October 22-23, 2019Location: San Jose Convention Center, San Jose, CAEvent Site: https://llvm.org/devmtg/2019-10/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-10/What can you can expect at an LLVM Developers’ Meeting?Technical TalksThese 25 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.PanelsPanel sessions are guided discussions about a specific topic. The panel consists of ~3 developers who discuss a topic through prepared questions from a moderator. The audience is also given the opportunity to ask questions of the panel.Student Research CompetitionStudents present their research using LLVM or related subproject. These are usually 20 minute technical presentations with Q&A. The audience will vote at the end for the winning presentation and paper.Poster SessionAn hour long session where selected posters are on display, with the presenters available for learning more on each poster.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 if 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-10/For future announcements or questions: Please visit the LLVM Discourse forums. Most posts are in the Announcements or Community categories and tagged with usllvmdevmtg.ProgramKeynoteGenerating Optimized Code with GlobalISelVolkan Keles, Daniel Sanders [Slides] [Video]Even Better C++ Performance and Productivity: Enhancing Clang to Support Just-in-Time Compilation of TemplatesHal Finkel [Slides] [Video]Technical TalksUsing LLVM's portable SIMD with ZigShawn Landden [Video]Code-Generation for the Arm M-profile Vector ExtensionSjoerd Meijer, Sam Parker [Slides] [Video]Alive2: Verifying Existing OptimizationsNuno Lopes, John Regehr [Slides] [Video]The clang constexpr interpreterNandor Licker [Video]Souper-Charging Peepholes with Target Machine InfoMin-Yih Hsu [Slides] [Video]Transitioning the Networking Software Toolchain to Clang/LLVMIvan Baev, Jeremy Stenglein, Bharathi Seshadri [Video]Link Time Optimization For SwiftJin Lin [Video]Hot Cold Splitting Optimization Pass In LLVMAditya Kumar [Slides] [Video]Making UB hurt less: security mitigations through automatic variable initializationJF Bastien [Video]Propeller: Profile Guided Large Scale Performance Enhancing RelinkerSriraman Tallam [Video]From C++ for OpenCL to C++ for accelerator devicesAnastasia Stulova [Slides] [Video]LLVM-Canon: Shooting for Clear DiffsMichal Paszkowski [Slides] [Video]Better C++ debugging using Clang Modules in LLDBRaphael Isemann [Video]Ownership SSA and Semantic SILMichael Gottesman [Video]arm64e: An ABI for Pointer AuthenticationAhmed Bougacha, John McCall [Slides] [Video]Porting by a 1000 Patches: Bringing Swift to WindowsSaleem Abdulrasool [Slides] [Video]The Penultimate Challange: Constructing bug reports in the Clang Static AnalyzerKristóóf Umann [Slides] [Video]Address Spaces in LLVMMatt Arsenault [Video]An MLIR Dialect for High-Level Optimization of FortranEric Schweitz [Video]Loop-transformation #pragmas in the front-endMichael Kruse [Video]Optimizing builds on Windows: some practical considerationsAlexandre Ganea [Slides] [Video]LLVM-Reduce for testcase reductionDiego Treviño Ferrer [Video]Memoro: Scaling an LLVM-based Heap profilerThierry Treyer [Slides] [Video]The Attributor: A Versatile Inter-procedural Fixpoint Iteration FrameworkJohannes Doerfert [Slides] [Video]LLVM Tutorials: How to write Beginner-Friendly, Inclusive TutorialsMeike Baumgärtner, Dmitri Gribenko [Video]Maturing an LLVM backend: Lessons learned from the RISC-V targetAlex Bradbury [Video]TutorialsGetting Started With LLVM: BasicsJessica Paquette, Florian Hahn [Video]ASTImporter: Merging Clang ASTsGábor Márton [Video]Developing the Clang Static AnalyzerArtem Dergachev [Slides] [Video]Writing an LLVM Pass: 101Andrzej Warzynski [Slides] [Video]Writing Loop Optimizations in LLVMKit Barton, Ettore Tiotto, Hal Finkel, Michael Kruse, Johannes Doerfert [Video]The Attributor: A Versatile Inter-procedural Fixpoint Iteration FrameworkJohannes Doerfert [Slides] [Video]Getting Started with the LLVM Testing InfrastructureBrian Homerding, Michael Kruse [Slides] [Video]An overview of ClangSven van Haastregt, Anastasia Stulova [Slides] [Video]An overview of LLVMEric Christopher, Sanjoy Das, Johannes Doerfert [Video]How to Contribute to LLVMChris Bieneman, Kit Barton [Video]My First Clang WarningDmitri Gribenko, Meike Baumgartner [Video]Student Research CompetitionCross-Translation Unit Optimization via Annotated HeadersWilliam S. Moses [Video]Quantifying Dataflow Analysis with Gradients in LLVMAbhishek Shah [Slides] [Video]Floating Point Consistency in the Wild: A practical evaluation of how compiler optimizations affect high performance floating point codeJack J Garzella [Video]Static Analysis of OpenMP Data Mapping for Target OffloadingPrithayan Barua [Slides] [Video]PanelsPanel: Inter-procedural Optimization (IPO)Teresa Johnson, Philip Reames, Chandler Carruth, Johannes Doerfert [Video]The Loop Optimization Working GroupKit Barton, Michael Kruse, TBD [Video]Birds of a FeatherLLDBJonas DevlieghereTowards Better Code Generator Design and Unification for a Stack MachineLeonid Kholodov, Dmitry BorisenkovDebug InfoAdrian PrantlLightning TalksGWP-ASan: Zero-Cost Detection of Memory Safety Bugs in ProductionMatt Morehouse [Slides] [Video]When 3 Memory Models Aren’t Enough – OpenVMS on x86John Reagan [Slides] [Video]FileCheck: learning arithmeticThomas Preud'homme [Slides] [Video]-Wall Found Programming Errors and Engineering Effort to Enable Across a Large CodebaseAditya Kumar [Slides] [Video]Handling 1000s of OpenCL builtin functions in ClangSven van Haastregt [Slides] [Video]NEC SX-Aurora as a Scalable Vector PlaygroundSimon Moll [Slides] [Video]Implementing Machine Code Optimizations for RISC-VLewis Revill [Slides] [Video]Optimization Remarks UpdateFrancis Visoiu Mistrih [Slides] [Video]Supporting Regular and Thin LTO with a Single LTO Bitcode FormatMatthew Voss [Slides] [Video]Transitioning Apple’s Downstream llvm-project Repositories to the MonorepoAlex Lorenz [Slides] [Video]A Unified Debug Server For Deeply Embedded Systems and LLDBSimon Cook [Slides] [Video]State of LLDB and Deeply Embedded RISC-VSimon Cook [Slides] [Video]Supporting a Vendor ABI Variant in ClangPaul Robinson [Slides] [Video]Speculative Compilation in ORC JITPraveen Velliengiri [Slides] [Video]Optimization Remarks for Human BeingsWilliam BundyImproving the Optimized Debugging ExperienceOrlando Cazalet-Hyams [Slides] [Video]Improving your TableGen DescriptionsJaved Absar [Slides] [Video]Loom: Weaving Instrumentation for Program AnalysisBrian Kidney [Slides] [Video]Clang Interface Stubs: Syntax Directed Stub Library Generation.Puyan Lotfi [Slides] [Video]Flang UpdateSteve Scalpone [Slides] [Video]Lowering tale: Supporting 64 bit pointers in RISCV 32 bit LLVM backendReshabh Sharma [Slides] [Video]Virtual Function Elimination in LLVMOliver Stannard [Slides] [Video]Making a Language Cross Platform: Libraries and ToolingGwen Mittertreiner [Slides] [Video]Grafter - A use case to implement an embedded DSL in C++ and perform source to source traversal fusion transformation using ClangLaith Sakka [Slides] [Video]PostersTON Labs Backend for TON BlockchainDmitry Borisenkov, Dmitry Shtukenberg, Leonid KholodovLLVM Build Times Using a Program RepositoryRusell Gallop, Phil CampRISC-V Bit Manipulation Support in the Clang/LLVM ToolchainScott Egerton, Paolo SaviniAttributor, a Framework for Interprocedural Information DeductionJohannes Doerfert, Hideto Ueno, Stefan StipanovicOverflows Be Gone: Checked C for Memory SafetyMandeep Singh GrangCross-Translation Unit Optimization via Annotated HeadersWilliam S. MosesQuantifying Dataflow Analysis with Gradients in LLVMAbhishek ShahFloating Point Consistency in the Wild: A practical evaluation of how compiler optimizations affect high performance floating point codeJack J GarzellaStatic Analysis of OpenMP Data Mapping for Target OffloadingPrithayan BaruaNEC SX-Aurora as a Scalable Vector PlaygroundKazuhisa IshizakaA Unified Debug Server For Deeply Embedded Systems and LLDBSimon CookSpeculative Compilation in ORC JITPraveen VelliengiriLoom: Weaving Instrumentation for Program AnalysisBrian KidneyLowering tale: Supporting 64 bit pointers in RISCV 32 bit LLVM backendReshabh SharmaCode 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.