Getting Started with LLVM Core Libraries
|Also available on:|
- 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.
Book DetailsLanguage : English
Paperback : 251 pages [ 235mm x 191mm ]
Release Date : July 2014
ISBN : 1782166920
ISBN 13 : 9781782166924
Author(s) : Bruno Cardoso Lopes
Topics and Technologies : All Books, Open Source
Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.
Sorry, there are currently no downloads available for this title.
What you will learn from this book
- Configure, build, and install extra LLVM open source projects; Clang Tools, Static Analyser, CompilerRT, lldb, DragonEGG, libc++, and LLVM test-suite
- Understand the LLVM library design and interaction between libraries and standalone tools
- Increase your knowledge of source code processing stages by learning how the Clang frontend uses a Lexer, Parser, and Syntax Analysis
- Manipulate, generate, and play with LLVM IR files while writing custom IR analyses and transformation passes
- Improve your knowledge of compiler backends and understand how instructions change all the way from LLVM IR to assembly code
- Write tools to use LLVM Just in Time compilation (JIT) capabilities
- Find bugs and improve your code by using the Static Analyser
- Design source code analysis and transformation tools using libClang, libTooling, and the Clang plugin interface
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 lessen the steep learning curve often associated with compiler development.
Whether you are a compiler expert or an enthusiastic newcomer, this book will provide you with all the necessary knowledge to get started with LLVM-related 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.
A practical guide to understanding LLVM with the help of source code references and snippets, insights on how compiler stages connect to each other, descriptions of important data structures, and examples of how to use the tools provided by LLVM. Some topics are explained with compelling hands-on examples that you are encouraged to try out.
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.