Who this book is for
This book is for people who want to use the LLVM infrastructure to write new backends or modify/extend existing ones.
We crafted this book for people who have zero knowledge of compiler backends. This means that all the concepts used are first introduced and explained such that no prior compiler backend knowledge is necessary. We believe this book is a good introduction for anyone who wants to get started with the code generation (codegen) part of a compiler toolchain, whether they are familiar with compilers and LLVM or not. In particular, the concepts introduced in this book apply to every compiler, and LLVM is just one possible implementation of such concepts. In other words, we argue that the content of this book may be useful to students and compiler practitioners beyond LLVM. Of course, a lot of the content of this book is still LLVM-specific.
To summarize, whether you are new to compilers, new to LLVM, or new to LLVM backends, we believe you will find something useful in this book.