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.
| Reading | When | Depth and purpose |
|---|
| Chapter 1 | 2 (Day 2) | Toolchain setup and build choices |
| Chapter 2 | 1, 3, 4, 5, 6 (Days 1 and 3–6) | Core compiler stages and expression language |
| Chapter 3 | 4, 5, 6, 7 (Days 4–7) | Selected parser, AST and semantic-checking sections |
| Chapter 4 | 8, 9, 10 (Days 8–10) | Core IR generation and driver material |
| Chapter 5 | 12 (Day 12) | Overview of aggregates and ABI; deeper work later |
| Chapter 7 | 11 (Day 11) | Pass-manager overview; implementing a pass is optional later |
| Chapter 8 | 17 (Day 17) | TableGen basics to read diagnostic definitions |
| Chapter 6 and remaining advanced chapters | After day 30 | Read 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
R13 Contribution process
Use before choosing a patch and again before submission.
Version context: Current policy. Reviewed 2026-09-22. Used on days 20, 22.
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.
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.