Resources

The book mapping and every reference used in the daily lessons, grouped by purpose.

Source review date: 2026-09-22. Live documentation and policies change; recheck contribution instructions and tool requirements when you use them.

Book mapping

Learn LLVM 17, Second Edition, Kai Nacke and Amy Kwan, ISBN 9781837631346. For a different book, map by topic. Prioritize this subset over finishing the whole book. Compare the companion code (R2) after your own attempt.

ReadingWhenDepth and purpose
Chapter 12 (Day 2)Toolchain setup and build choices
Chapter 21, 3, 4, 5, 6 (Days 1 and 3–6)Core compiler stages and expression language
Chapter 34, 5, 6, 7 (Days 4–7)Selected parser, AST and semantic-checking sections
Chapter 48, 9, 10 (Days 8–10)Core IR generation and driver material
Chapter 512 (Day 12)Overview of aggregates and ABI; deeper work later
Chapter 711 (Day 11)Pass-manager overview; implementing a pass is optional later
Chapter 817 (Day 17)TableGen basics to read diagnostic definitions
Chapter 6 and remaining advanced chaptersAfter day 30Read when required by a chosen project

Crafting Interpreters (R3) supplements scanning, syntax and parsing concepts; its implementation differs from the C++ toy project. Use it and the LLVM tutorial (R7) selectively, without starting another full compiler or interpreter.

Book and companion code

R1 Learn LLVM 17, Second Edition

Kai Nacke and Amy Kwan, ISBN 9781837631346. Use the chapter mapping on this site; no additional purchase is required. Reading budgets cover selected sections, not entire chapters.

Version context: LLVM 17. Reviewed 2026-09-22. Used on days 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 17.

R2 Book companion code

Compare after your own attempt and retain applicable attribution when reusing code.

Version context: LLVM 17. Reviewed 2026-09-22.

Compiler foundations

R3 Crafting Interpreters

Robert Nystrom's free book. Use the overview, scanning, representing-code and expression-parsing topics in the first week; do not build its entire interpreter alongside the toy project.

Version context: Language-agnostic concepts. Reviewed 2026-09-22. Used on days 01, 03, 05.

Build and setup

R4 Getting Started with LLVM

Check host compiler and dependency requirements before a main build.

Version context: Current main. Reviewed 2026-09-22. Used on day 02.

R5 Build configuration

Options for selected projects, targets, assertions and parallelism.

Version context: Current main. Reviewed 2026-09-22. Used on day 02.

LLVM IR

R6 LLVM language reference

Look up only the types, functions and instructions used in an exercise.

Version context: LLVM 17 for book exercises; current for main. Reviewed 2026-09-22. Used on days 08, 11.

R7 LLVM frontend tutorial

Selective reference for IR generation and control flow; the archived tutorial matches the book's major version.

Version context: LLVM 17 archive and current. Reviewed 2026-09-22. Used on days 09, 10, 11.

Clang frontend

R8 Introduction to the Clang AST

Use for AST inspection in days 12 and 14. The page also links a talk and slides for an optional visual explanation.

Version context: Current main. Reviewed 2026-09-22. Used on days 12, 14.

R9 Clang internals manual

Consult selected AST, type, diagnostic and semantic-analysis discussions.

Version context: Current main. Reviewed 2026-09-22. Used on days 13, 14, 18.

Testing

R10 LLVM testing guide

Read before writing an upstream test.

Version context: Current main. Reviewed 2026-09-22. Used on days 15, 16, 25.

R11 Hacking on Clang

Useful debugging and test guidance; prefer current CMake and Ninja recipes over historical build-system examples.

Version context: Current main. Reviewed 2026-09-22. Used on days 15, 19.

R12 FileCheck manual

Reference for checks on compiler output. Start with basic checks, labels and captures.

Version context: Current main. Reviewed 2026-09-22. Used on day 17.

Contributing

R14 LLVM GitHub workflow

Current instructions for pull requests and review.

Version context: Current policy. Reviewed 2026-09-22. Used on days 20, 28.

R15 LLVM coding standards

Read the portions relevant to your change and match neighboring code.

Version context: Current policy. Reviewed 2026-09-22. Used on days 20, 26.

R16 LLVM AI tool use policy

Recheck before contribution work, including the restriction on good-first-issue fixes.

Version context: Current policy. Reviewed 2026-09-22. Used on days 20, 28.

R17 Live issue discovery

Filter for the Clang area you understand, inspect activity and check related PRs. This site does not endorse or reserve a particular live issue.

Version context: Live. Reviewed 2026-09-22. Used on days 22, 23, 29.

R18 Reports and community

Prepare a minimal reproducer, exact flags, compiler version and clear expected behavior before seeking help.

Version context: Current policy. Reviewed 2026-09-22.

Optional follow-up

R19 LibTooling and AST matchers tutorial

Explore after the core month if AST-based tools interest you.

Version context: Current main. Reviewed 2026-09-22.

This website

R20 Astro deployment guide

Documentation for building and deploying this site. Use the version matching the installed Astro release and the host's current domain instructions.

Version context: Astro 7. Reviewed 2026-09-22.

Your own material

Your llvm-project checkout

Source and tests in your current-main checkout. Read nearby code and tests before changing anything.

Version context: Current main at your recorded SHA. Reviewed 2026-09-22. Used on days 16, 18, 23, 24, 25, 26, 27, 29.

Your learning notes

Your learning repository and daily notes: source maps, logs and open questions.

Open on this site

Version context: Your own record. Reviewed 2026-09-22. Used on days 19, 21, 30.

Pull request readiness checklist

The checklist on this site’s contributing page.

Open on this site

Version context: This site. Reviewed 2026-09-22. Used on day 27.