Getting Started with LLVM Core Libraries
- Length: 314 pages
- Edition: 1
- Language: English
- Publisher: Packt Publishing
- Publication Date: 2014-08-26
- ISBN-10: 1782166920
- ISBN-13: 9781782166924
- Sales Rank: #801471 (See Top 100 Books)
Get to grips with LLVM essentials and use the core libraries to build advanced tools
About This Book
- Learn how to configure, build, and use LLVM and Clang based tools
- Explore the depths of the LLVM front-end, IR, code generator, and libraries, and learn how a modern compiler is implemented in a practical way.
- Customize your project to benefit from Just in Time compilation (JIT), static analysis and source-to-source transformations.
Who This Book Is For
This book is intended for enthusiasts, computer science students, and compiler engineers interested in learning about the LLVM framework. You need a background in C++ and, although not mandatory, should know at least some compiler theory. Whether you are a newcomer or a compiler expert, this book provides a practical introduction to LLVM and avoids complex scenarios. If you are interested enough and excited about this technology, then this book is definitely for you.
In Detail
LLVM is a bleeding edge compiler technology framework. Easily extendable and designed as a multitude of libraries, LLVM provides a smooth experience for compiler newcomers and reduces the steep learning curve often associated with compiler development.
To start, this book will show you how to configure, build, and install LLVM libraries, tools, and external projects. Next, you will be introduced to LLVM design and how it works in practice throughout each LLVM compiler stage: frontend, IR, backend, the JIT engine, cross-compilation capabilities, and the plugin interface. With multiple hands-on examples and source code snippets, Getting Started with LLVM Core Libraries ensures a solid and smooth first step into the LLVM compiler development environment.
Table of Contents
Chapter 1: Build and Install LLVM
Chapter 2: External Projects
Chapter 3: Tools and Design
Chapter 4: The Frontend
Chapter 5: The LLVM Intermediate Representation
Chapter 6: The Backend
Chapter 7: The Just-in-Time Compiler
Chapter 8: Cross-platform Compilation
Chapter 9: The Clang Static Analyzer
Chapter 10: Clang Tools with LibTooling