The LLVM Compiler Infrastructure
Site Map:
Download!
Search this Site


Useful Links
Release Emails
18.1.2: Mar 2024
18.1.1: Mar 2024
18.1.0: Mar 2024
17.0.6: Nov 2023
17.0.5: Nov 2023
17.0.4: Oct 2023
17.0.3: Oct 2023
17.0.2: Oct 2023
17.0.1: Sep 2023
All Announcements

Maintained by the
llvm-admin team
LLVM Workshop at CGO
  1. Schedule
  • What: LLVM at CGO.
  • When: February 7, 2015
  • Where: San Francisco, CA

A LLVM Workshop will be held at CGO 2015. If you are interested in attending the workshop, please register at the CGO website.

Topic Overview

  • High-level overview of LLVM & Clang
    • Will include how to get started coding on LLVM & Clang
    • Overview of core design elements, data structures, APIs, and patterns used in the codebase
    • High-level testing strategy for LLVM & Clang using tools like Clang’s ‘-verify’, opt, llc, FileCheck, and GoogleTest
    • Process of submitting a patch, code review, and community interactions
  • How to add an optimization pass to LLVM
    • Tutorial on the LLVM IR both in the abstract and at the level of internal APIs
    • Basic APIs and data structures needed to implement, test, and wire a new pass into the compiler.
    • Overview of the relationship between transform and analysis passes.
    • Overview of the different kinds of transformation passes, how they interact, and what they can and can’t do
    • Actually add a transformation pass and an analysis pass to the compiler that depend on each other and exercise this machinery.
    • Includes authoring relevant tests for each component
  • High-level overview of the architecture of an LLVM backend, with an emphasis on modifying or enhancing existing backends rather than adding a new one
    • Detailed review of where things are: from SelectionDAG to FastISel to the register allocator
    • Detailed review of exactly how a backend’s tablegen works, and how to make changes there and debug things

Schedule
TimeTopic
8:30Introduction to the LLVM Project
9:00Getting started hacking on LLVM and Clang
10:00BREAK
10:30The middle end optimizer
12:00LUNCH
2:00Diagnosing and fixing bugs in the middle end optimizer
2:45Adding optimization passes to the middle end
3:30BREAK
4:00Overview of the LLVM Code Generator
4:30Adding custom legalization, target specific pseudo instructions, and instruction pattern
5:00Extended Q&A