2018 Bay Area LLVM Developers' Meeting

Table of Contents

About

The 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?

What types of people attend?

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/#register

For future announcements or questions: Please sign up for the LLVM Developers’ Meeting list.

Program

Women in Compilers and Tools Workshop

Inner Critic: How to Deal with Your Imposter Syndrome

Presented By Women Catalysts
You'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 Speaking

Presented By Karen Catlin
To 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 Program

Presented By Tanya Lattner
Over 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.

Keynote

Glow: LLVM-based machine learning compiler

Nadav Rotem, Roman Levenstein [Video]

The Future Direction of C++ and the Four Horsemen of Heterogeneous Computing

Michael Wong [Video]

Technical Talks

Lessons Learned Implementing Common Lisp with LLVM over Six Years

Christian Schafmeister [Video]

Porting Function merging pass to thinlto

Aditya Kumar [Slides] [Video]

Build Impact of Explicit and C++ Standard Modules

David Blaikie [Video]

Profile Guided Function Layout in LLVM and LLD

Michael Spencer [Slides] [Video]

Developer Toolchain for the Nintendo Switch

Bob Campbell, Jeff Sirois [Video]

Methods for Maintaining OpenMP Semantics without Being Overly Conservative

Jin 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 LLVM

Evgeniy Tyurin [Slides] [Video]

Working with Standalone Builds of LLVM sub-projects

Tom Stellard [Video]

Loop Transformations in LLVM: The Good, the Bad, and the Ugly

Michael Kruse, Hal Finkel [Slides] [Video]

Efficiently Implementing Runtime Metadata with LLVM

Joe Groff, Doug Gregor

Coroutine Representations and ABIs in LLVM

John McCall

Graph Program Extraction and Device Partitioning in Swift for TensorFlow

Mingsheng Hong, Chris Lattner [Slides] [Video]

Memory Tagging, how it improves C++ memory safety, and what does it mean for compiler optimizations

Kostya Serebryany, Evgenii Stepanov, Vlad Tsyrklevich [Slides] [Video]

Improving code reuse in clang tools with clangmetatool

Daniel Ruoso [Slides] [Video]

Sound Devirtualization in LLVM

Piotr Padlewski, Krzysztof Pszeniczny [Slides] [Video]

Extending the SLP vectorizer to support variable vector widths

Vasileios 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 Plans

Florian Hahn, Satish Guggilla, Diego Caballero [Video]

Stories from RV: The LLVM vectorization ecosystem

Simon Moll, Matthias Kurtenacker, Sebastian Hack [Video]

Faster, Stronger C++ Analysis with the Clang Static Analyzer

George Karpenkov, Artem Dergachev [Slides] [Video]

Tutorials

Updating ORC JIT for Concurrency

Lang Hames, Breckin Loggins

Register Allocation: More than Coloring

Matthias Braun

How to use LLVM to optimize your parallel programs

William S. Moses [Slides] [Video]

LLVM backend development by example (RISC-V)

Alex Bradbury [Video]

BoFs

Debug Info BoF

Vedant Kumar, Adrian Prantl

Lifecycle of LLVM bug reports

Kristof Beyls, Paul Robinson

GlobalISel Design and Development

Amara Emerson

Migrating to C++14, and beyond!

JF Bastien

Ideal versus Reality: Optimal Parallelism and Offloading Support in LLVM

Xinmin Tian, Hal Finkel, TB Schardl, Johannes Doerfert, Vikram Adve

Should we go beyond `#pragma omp declare simd`?

Francesco Petrogalli

Implementing the parallel STL in libc++

Louis Dionne

Clang Static Analyzer BoF

Devin Coughlin

LLVM Foundation BoF

LLVM Foundation Board of Directors

Lightning Talks

Automatic Differentiation in C/C++ Using Clang Plugin Infrastructure

Vassil Vassilev, Aleksandr Efremov [Video]

More efficient LLVM devs: 1000x faster build file generation, -j1000 builds, and O(1) test execution

Nico Weber [Slides] [Video]

Heap-to-Stack Conversion

Hal Finkel [Video]

TWINS - This Workflow is Not Scrum: Adapting Agile for Open Source Interaction

Joshua Magee [Video]

Mutating the clang AST from Plugins

Andrei 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 Chains

Jeremy Bennett, Simon Cook, Ed Jones [Video]

ThinLTO Summaries in JIT Compilation

Stefan Gränitz

Refuting False Bugs in the Clang Static Analyzer using SMT Solvers

Mikhail R. Gadelha [Video]

What’s New In Outlining

Jessica Paquette

DWARF v5 Highlights - Why You Care

Paul Robinson, Pavel Labath, Wolfgang Pieb [Video]

Using TAPI to Understand APIs and Speed Up Builds

Steven Wu, Juergen Ributzka

Hardware Interference Size

JF Bastien

Dex: efficient symbol index for Clangd

Kirill Bobyrev, Eric Liu, Sam McCall, Ilya Biryukov [Video]

Flang Update

Steve Scalpone [Video]

clang-doc: an elegant generator for more civilized documentation

Julie Hockett [Video]

Code Coverage with CPU Performance Monitoring Unit

Ivan Baev, Bharathi Seshadri, Stefan Pejic [Video]

VecClone Pass: Function Vectorization via LoopVectorizer

Matt Masten, Evgeniy Tyurin, Konstantina Mitropoulou [Video]

ISL Memory Management Using Clang Static Analyzer

Malhar Thakkar, Ramakrishna Upadrasta [Video]

Eliminating always_inline in libc++: a journey of visibility and linkage

Louis Dionne

Error Handling in Libraries: A Case Study

James Henderson [Video]

NEC SX-Aurora - A Scalable Vector Architecture

Erich Focht [Video]

Posters

Gaining fine-grain control over pass management

Serge Guelton, Adrien Guinet, Pierrick Brunet, Juan Manuel Martinez, Béatrice Creusillet

Integration of OpenMP, libcxx and libcxxabi packages into LLVM toolchain

Reshabh Sharma

Improving Debug Information in LLVM to Recover Optimized-out Function Parameters

Ananthakrishna Sowda, Djordje Todorovic, Nikola Prica, Ivan Baev

Automatic Compression for LLVM RISC-V

Sameer AbuAsal, Ana Pazos

Guaranteeing the Correctness of LLVM RISC-V Machine Code with Fuzzing

Jocelyn Wei, Ana Pazos, Mandeep Singh Grang

NEC SX-Aurora - A Scalable Vector Architecture

Kazuhisa Ishizaka, Kazushi Marukawa, Erich Focht, Simon Moll, Matthias Kurtenacker, Sebastian Hack

Extending Clang Static Analyzer to enable Cross Translation Unit Analysis

Varun Subramanian

Refuting False Bugs in the Clang Static Analyzer using SMT Solvers

Mikhail R. Gadelha

libcu++: Porting LLVM's C++ Standard Library to CUDA

Bryce Lelbach

Repurposing GCC Regression for LLVM Based Tool Chains

Jeremy Bennett, Simon Cook, Ed Jones

Memory Tagging, how it improves C++ memory safety, and what does it mean for compiler optimizations

Kostya Serebryany, Evgenii Stepanov, Vlad Tsyrklevich

goSLP: Globally Optimized Superword Level Parallelism Framework

Charith Mendis

Code of Conduct

The 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.

Contact

To contact the organizer, email Tanya Lattner.