LLVM Code Generation: A deep dive into compiler backend development

Printed Book
SR 216
Inclusive of VAT
Sold as: EACH
SR13Per Month/24 months
Author:Colombet, Quentin
Date of Publication: 2025
Book classification:Computer & Technology,English Books,
No. of pages:620 Pages
Format:Paperback

This book is printed on demand and is non-refundable after purchase

Available Formats :

Printed Book

It will be sent to your address

SR216
Incl. VAT

Choose your delivery preference

Or

About this Product

Explore the world of code generation with the LLVM infrastructure, and learn how to extend existing backends or develop your own

Key Features:

- Understand 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

- Purchase of the print or Kindle book includes a free PDF eBook

Book Description:

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

Youll 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. Youll also find out how to express these concepts using LLVMs existing infrastructure and how established backends address these challenges. Furthermore, the book features code snippets that demonstrate the actual APIs.

By the end of this book, youll 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 Learn:

- Understand essential compiler concepts, such as SSA, dominance, and ABI

- Build and extend LLVM backends for creating custom compiler features

- Optimize code by manipulating LLVMs Intermediate Representation

- Contribute effectively to LLVM open-source projects and development

- Develop debugging skills for LLVM optimizations and passes

- Grasp how encoding and (dis)assembling work in the context of compilers

- Utilize LLVMs TableGen DSL for creating custom compiler models

Who this book is for:

This book is for both beginners to LLVM and experienced LLVM developers. If youre 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 youre starting out or looking to deepen your knowledge, this book has something for you.

Table of Contents

- Building 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

- Introducing Target-Specific Constructs

- Hands-On Debugging LLVM IR Passes

- Legacy Instruction Selection Framework - SelectionDAG

- Getting Started with the Machine Code Layer

- The Machine Pass Pipeline

- Getting Started with Instruction Selection

- Instruction Selection: The IR Building Phase

- Instruction Selection: The Legalization Phase

(N.B. Please use the Read Sample option to see further chapters)

Show more

Specifications

SKU9781837637782
Manufacturer Number9781837637782
year published2025
Show more

Report an issue with this product.

Customer Reviews