2018 Bay Area LLVM Developers' MeetingTable of ContentsAboutProgramWomen in Compilers and Tools WorkshopInner Critic: How to Deal with Your Imposter SyndromePresent! A Techie's Guide to Public SpeakingUpdate on Women in Compilers & Tools ProgramKeynoteGlow: LLVM-based machine learning compilerThe Future Direction of C++ and the Four Horsemen of Heterogeneous ComputingTechnical TalksLessons Learned Implementing Common Lisp with LLVM over Six YearsPorting Function merging pass to thinltoBuild Impact of Explicit and C++ Standard ModulesProfile Guided Function Layout in LLVM and LLDDeveloper Toolchain for the Nintendo SwitchMethods for Maintaining OpenMP Semantics without Being Overly ConservativeUnderstanding the performance of code using LLVM's Machine Code Analyzer (llvm-mca)Art Class for Dragons: Supporting GPU compilation without metadata hacks!Implementing an OpenCL compiler for CPU in LLVMWorking with Standalone Builds of LLVM sub-projectsLoop Transformations in LLVM: The Good, the Bad, and the UglyEfficiently Implementing Runtime Metadata with LLVMCoroutine Representations and ABIs in LLVMGraph Program Extraction and Device Partitioning in Swift for TensorFlowMemory Tagging, how it improves C++ memory safety, and what does it mean for compiler optimizationsImproving code reuse in clang tools with clangmetatoolSound Devirtualization in LLVMExtending the SLP vectorizer to support variable vector widthsRevisiting Loop Fusion, and its place in the loop transformation framework.Optimizing Indirections, using abstractions without remorse.Outer Loop Vectorization in LLVM: Current Status and Future PlansStories from RV: The LLVM vectorization ecosystemFaster, Stronger C++ Analysis with the Clang Static AnalyzerTutorialsUpdating ORC JIT for ConcurrencyRegister Allocation: More than ColoringHow to use LLVM to optimize your parallel programsLLVM backend development by example (RISC-V)BoFsDebug Info BoFLifecycle of LLVM bug reportsGlobalISel Design and DevelopmentMigrating to C++14, and beyond!Ideal versus Reality: Optimal Parallelism and Offloading Support in LLVMShould we go beyond `#pragma omp declare simd`?Implementing the parallel STL in libc++Clang Static Analyzer BoFLLVM Foundation BoFLightning TalksAutomatic Differentiation in C/C++ Using Clang Plugin InfrastructureMore efficient LLVM devs: 1000x faster build file generation, -j1000 builds, and O(1) test executionHeap-to-Stack ConversionTWINS - This Workflow is Not Scrum: Adapting Agile for Open Source InteractionMutating the clang AST from PluginsatJIT: an online, feedback-directed optimizer for C++Repurposing GCC Regression for LLVM Based Tool ChainsThinLTO Summaries in JIT CompilationRefuting False Bugs in the Clang Static Analyzer using SMT SolversWhat’s New In OutliningDWARF v5 Highlights - Why You CareUsing TAPI to Understand APIs and Speed Up BuildsHardware Interference SizeDex: efficient symbol index for ClangdFlang Updateclang-doc: an elegant generator for more civilized documentationCode Coverage with CPU Performance Monitoring UnitVecClone Pass: Function Vectorization via LoopVectorizerISL Memory Management Using Clang Static AnalyzerEliminating always_inline in libc++: a journey of visibility and linkageError Handling in Libraries: A Case StudyNEC SX-Aurora - A Scalable Vector ArchitecturePostersGaining fine-grain control over pass managementIntegration of OpenMP, libcxx and libcxxabi packages into LLVM toolchainImproving Debug Information in LLVM to Recover Optimized-out Function ParametersAutomatic Compression for LLVM RISC-VGuaranteeing the Correctness of LLVM RISC-V Machine Code with FuzzingNEC SX-Aurora - A Scalable Vector ArchitectureExtending Clang Static Analyzer to enable Cross Translation Unit AnalysisRefuting False Bugs in the Clang Static Analyzer using SMT Solverslibcu++: Porting LLVM's C++ Standard Library to CUDARepurposing GCC Regression for LLVM Based Tool ChainsMemory Tagging, how it improves C++ memory safety, and what does it mean for compiler optimizationsgoSLP: Globally Optimized Superword Level Parallelism FrameworkCode of ConductContactConference Dates: October 17-18, 2018Location: San Jose Convention Center, San Jose, CAEvent Site: https://llvm.org/devmtg/2018-10/#registerAboutThe LLVM Developers’ Meeting is a bi-annual 2 day 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.What can you can expect at an LLVM Developers’ Meeting?Technical TalksThese 20-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 50 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 20 minute technical presentations with Q&A. The audence will vote at the end for the winning presentation and paper.Poster SessionAn hour long poster session where selected posters 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, klee, lld, 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/2018-10/#registerFor future announcements or questions: Please sign up for the LLVM Developers’ Meeting list.ProgramWomen in Compilers and Tools WorkshopInner Critic: How to Deal with Your Imposter SyndromePresented By Women CatalystsYou're smart. People really like you. And yet, you can't shake the feeling that maybe you don't really deserve your success. Or that someone else can do what you do better...and what if your boss can see it too? You are not alone: it's called the Imposter Syndrome. Believe it or not, the most confident and successful people often fear that they are actually inadequate. The great Maya Angelou once said, "I have written 11 books, but each time I think, 'Uh-oh, they're going to find out now. I've run a game on everybody, and they're going to find me out.’" But it doesn't have to be that way. In this workshop, you'll learn to identify the voice of your Imposter Syndrome and develop with strategies for dealing with your inner critics.Present! A Techie's Guide to Public SpeakingPresented By Karen CatlinTo grow your career, you know what you need to do: improve your public speaking skills. Public speaking provides the visibility and professional credibility that helps you score the next big opportunity. But even more important is the fact that it transforms the way you communicate. Improved confidence and the ability to convey messages clearly will impact your relationships with your managers, coworkers, customers, industry peers, and even potential new hires. In this presentation, Karen Catlin will cover the importance of speaking at conferences and events, along with strategies to get started. She'll share some favorite tips from the book she co-authored with Poornima Vijayashanker, "Present! A Techie's Guide to Public Speaking." And she'll tell some embarrassing stories that are just too good to keep to herself. About Karen: After spending 25 years building software products, Karen Catlin is now an advocate for women in the tech industry. She’s a leadership coach, a keynote and TEDx speaker, and co-author of "Present! A Techie’s Guide to Public Speaking.” Formerly, Karen was a vice president of engineering at Macromedia and Adobe. Karen holds a computer science degree from Brown University and serves as an advisor to Brown's Computer Science Diversity Initiative. She’s also on the Advisory Boards for The Women’s CLUB of Silicon Valley and WEST (Women Entering & Staying in Technology).Update on Women in Compilers & Tools ProgramPresented By Tanya LattnerOver the past year we have hosted panels and BoFs on women in compilers and tools. We now need to take many of the items discussed during the events and put them into action. We will discuss some key areas and potentially break into smaller groups to determine action plans and steps to move forward.KeynoteGlow: LLVM-based machine learning compilerNadav Rotem, Roman Levenstein [Video]The Future Direction of C++ and the Four Horsemen of Heterogeneous ComputingMichael Wong [Video]Technical TalksLessons Learned Implementing Common Lisp with LLVM over Six YearsChristian Schafmeister [Video]Porting Function merging pass to thinltoAditya Kumar [Slides] [Video]Build Impact of Explicit and C++ Standard ModulesDavid Blaikie [Video]Profile Guided Function Layout in LLVM and LLDMichael Spencer [Slides] [Video]Developer Toolchain for the Nintendo SwitchBob Campbell, Jeff Sirois [Video]Methods for Maintaining OpenMP Semantics without Being Overly ConservativeJin Lin, Ernesto Su, Xinmin Tian [Slides] [Video]Understanding the performance of code using LLVM's Machine Code Analyzer (llvm-mca)Andrea Di Biagio, Matt Davis [Video]Art Class for Dragons: Supporting GPU compilation without metadata hacks!Neil Hickey [Video]Implementing an OpenCL compiler for CPU in LLVMEvgeniy Tyurin [Slides] [Video]Working with Standalone Builds of LLVM sub-projectsTom Stellard [Video]Loop Transformations in LLVM: The Good, the Bad, and the UglyMichael Kruse, Hal Finkel [Slides] [Video]Efficiently Implementing Runtime Metadata with LLVMJoe Groff, Doug GregorCoroutine Representations and ABIs in LLVMJohn McCallGraph Program Extraction and Device Partitioning in Swift for TensorFlowMingsheng Hong, Chris Lattner [Slides] [Video]Memory Tagging, how it improves C++ memory safety, and what does it mean for compiler optimizationsKostya Serebryany, Evgenii Stepanov, Vlad Tsyrklevich [Slides] [Video]Improving code reuse in clang tools with clangmetatoolDaniel Ruoso [Slides] [Video]Sound Devirtualization in LLVMPiotr Padlewski, Krzysztof Pszeniczny [Slides] [Video]Extending the SLP vectorizer to support variable vector widthsVasileios Porpodas, Rodrigo C. O. Rocha, Luís F. W. Góes [Video]Revisiting Loop Fusion, and its place in the loop transformation framework.Johannes Doerfert, Kit Barton, Hal Finkel, Michael Kruse [Slides] [Video]Optimizing Indirections, using abstractions without remorse.Johannes Doerfert, Hal Finkel [Slides] [Video]Outer Loop Vectorization in LLVM: Current Status and Future PlansFlorian Hahn, Satish Guggilla, Diego Caballero [Video]Stories from RV: The LLVM vectorization ecosystemSimon Moll, Matthias Kurtenacker, Sebastian Hack [Video]Faster, Stronger C++ Analysis with the Clang Static AnalyzerGeorge Karpenkov, Artem Dergachev [Slides] [Video]TutorialsUpdating ORC JIT for ConcurrencyLang Hames, Breckin LogginsRegister Allocation: More than ColoringMatthias BraunHow to use LLVM to optimize your parallel programsWilliam S. Moses [Slides] [Video]LLVM backend development by example (RISC-V)Alex Bradbury [Video]BoFsDebug Info BoFVedant Kumar, Adrian PrantlLifecycle of LLVM bug reportsKristof Beyls, Paul RobinsonGlobalISel Design and DevelopmentAmara EmersonMigrating to C++14, and beyond!JF BastienIdeal versus Reality: Optimal Parallelism and Offloading Support in LLVMXinmin Tian, Hal Finkel, TB Schardl, Johannes Doerfert, Vikram AdveShould we go beyond `#pragma omp declare simd`?Francesco PetrogalliImplementing the parallel STL in libc++Louis DionneClang Static Analyzer BoFDevin CoughlinLLVM Foundation BoFLLVM Foundation Board of DirectorsLightning TalksAutomatic Differentiation in C/C++ Using Clang Plugin InfrastructureVassil Vassilev, Aleksandr Efremov [Video]More efficient LLVM devs: 1000x faster build file generation, -j1000 builds, and O(1) test executionNico Weber [Slides] [Video]Heap-to-Stack ConversionHal Finkel [Video]TWINS - This Workflow is Not Scrum: Adapting Agile for Open Source InteractionJoshua Magee [Video]Mutating the clang AST from PluginsAndrei Homescu, Per Larsen [Video]atJIT: an online, feedback-directed optimizer for C++Kavon Farvardin, Hal Finkel, Michael Kruse, John Reppy [Video]Repurposing GCC Regression for LLVM Based Tool ChainsJeremy Bennett, Simon Cook, Ed Jones [Video]ThinLTO Summaries in JIT CompilationStefan GränitzRefuting False Bugs in the Clang Static Analyzer using SMT SolversMikhail R. Gadelha [Video]What’s New In OutliningJessica PaquetteDWARF v5 Highlights - Why You CarePaul Robinson, Pavel Labath, Wolfgang Pieb [Video]Using TAPI to Understand APIs and Speed Up BuildsSteven Wu, Juergen RibutzkaHardware Interference SizeJF BastienDex: efficient symbol index for ClangdKirill Bobyrev, Eric Liu, Sam McCall, Ilya Biryukov [Video]Flang UpdateSteve Scalpone [Video]clang-doc: an elegant generator for more civilized documentationJulie Hockett [Video]Code Coverage with CPU Performance Monitoring UnitIvan Baev, Bharathi Seshadri, Stefan Pejic [Video]VecClone Pass: Function Vectorization via LoopVectorizerMatt Masten, Evgeniy Tyurin, Konstantina Mitropoulou [Video]ISL Memory Management Using Clang Static AnalyzerMalhar Thakkar, Ramakrishna Upadrasta [Video]Eliminating always_inline in libc++: a journey of visibility and linkageLouis DionneError Handling in Libraries: A Case StudyJames Henderson [Video]NEC SX-Aurora - A Scalable Vector ArchitectureErich Focht [Video]PostersGaining fine-grain control over pass managementSerge Guelton, Adrien Guinet, Pierrick Brunet, Juan Manuel Martinez, Béatrice CreusilletIntegration of OpenMP, libcxx and libcxxabi packages into LLVM toolchainReshabh SharmaImproving Debug Information in LLVM to Recover Optimized-out Function ParametersAnanthakrishna Sowda, Djordje Todorovic, Nikola Prica, Ivan BaevAutomatic Compression for LLVM RISC-VSameer AbuAsal, Ana PazosGuaranteeing the Correctness of LLVM RISC-V Machine Code with FuzzingJocelyn Wei, Ana Pazos, Mandeep Singh GrangNEC SX-Aurora - A Scalable Vector ArchitectureKazuhisa Ishizaka, Kazushi Marukawa, Erich Focht, Simon Moll, Matthias Kurtenacker, Sebastian HackExtending Clang Static Analyzer to enable Cross Translation Unit AnalysisVarun SubramanianRefuting False Bugs in the Clang Static Analyzer using SMT SolversMikhail R. Gadelhalibcu++: Porting LLVM's C++ Standard Library to CUDABryce LelbachRepurposing GCC Regression for LLVM Based Tool ChainsJeremy Bennett, Simon Cook, Ed JonesMemory Tagging, how it improves C++ memory safety, and what does it mean for compiler optimizationsKostya Serebryany, Evgenii Stepanov, Vlad TsyrklevichgoSLP: Globally Optimized Superword Level Parallelism FrameworkCharith MendisCode 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 Tanya Lattner.