Jump to ratings and reviews
Rate this book

LLVM Code Generation: A deep dive into compiler backend development

Rate this book
“If you're working in or interested in LLVM and code generation, this book should definitely be on your list. Highly recommended!” -Yacob (Kobi) Cohen Arazi, Software Engineer at NVIDIA.

“If you're passionate about compilers and eager to stay ahead in this dynamic field, I highly recommend giving this book a read.” -Arya Mazaheri, Co-founder of PanocularAI

“I think that this book will lower the access barrier to LLVM significantly and very quickly be on the desks of compiler engineers and students.” -Sebastian Hac, Professor (Compilers) at Saarland University

Key FeaturesUnderstand the steps involved in generating assembly code from LLVM IR Learn the key constructs needed to leverage LLVM for your hardware or backend Strengthen your understanding with targeted exercises and practical examples in every chapter Book DescriptionThe LLVM infrastructure is a popular compiler ecosystem widely used in the tech industry and academia. This technology is crucial for both experienced and aspiring compiler developers looking to make an impact in the field. Written by Quentin Colombet, a veteran LLVM contributor and architect of the GlobalISel framework, this book provides a primer on the main aspects of LLVM, with an emphasis on its backend infrastructure; that is, everything needed to transform the intermediate representation (IR) produced by frontends like Clang into assembly code and object files.

You’ll learn how to write an optimizing code generator for a toy backend in LLVM. The chapters will guide you step by step through building this backend while exploring key concepts, such as the ABI, cost model, and register allocation. You’ll also find out how to express these concepts using LLVM's existing infrastructure and how established backends address these challenges.

By the end of this book, you’ll have gained a deeper understanding of LLVM. The concepts presented are expected to remain stable across different LLVM versions, making this book a reliable quick reference guide for understanding LLVM.

What you will learnUnderstand essential compiler concepts, such as SSA, dominance, and ABI Build and extend LLVM backends for creating custom compiler features Optimize code by manipulating LLVM's Intermediate Representation Contribute effectively to LLVM open-source projects and development Develop debugging skills for LLVM optimizations and passes Who this book is for This book is for both beginners to LLVM and experienced LLVM developers. If you’re new to LLVM, it offers a clear, approachable guide to compiler backends, starting with foundational concepts. For seasoned LLVM developers, it dives into less-documented areas such as TableGen, MachineIR, and MC, enabling you to solve complex problems and expand your expertise. Whether you’re starting out or looking to deepen your knowledge, this book has something for you.

Table of ContentsBuilding LLVM and Understanding the Directory Structure Contributing to LLVM Compiler Basics and How They Map to LLVM APIs Writing Your First Optimization Dealing with Pass Managers TableGen – LLVM Swiss Army Knife for Modeling Understanding LLVM IR Survey of the Existing Passes

622 pages, Kindle Edition

Published May 23, 2025

7 people are currently reading
4 people want to read

About the author

Quentin Colombet

2 books1 follower

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
0 (0%)
4 stars
2 (100%)
3 stars
0 (0%)
2 stars
0 (0%)
1 star
0 (0%)
No one has reviewed this book yet.

Can't find what you're looking for?

Get help and learn more about the design.