Limit search to available items
Book Cover
E-book
Author Lopes, Bruno Cardoso, author

Title Getting started with LLVM core libraries : get to grips with LLVM essentials and use the core libraries to build advanced tools / Bruno Cardoso Lopes, Rafael Auler ; cover image by Aniket Sawant
Published Birmingham, England : Packt Publishing Ltd, 2014
©2014

Copies

Description 1 online resource (314 pages) : illustrations
Series Community Experience Distilled
Community experience distilled.
Contents Cover; Copyright; Credits; About the Authors; About the Reviewers; www.PacktPub.com; Table of Contents; Preface; Chapter 1: Build and Install LLVM; Understanding LLVM versions; Obtaining prebuilt packages; Obtaining the official prebuilt binaries; Using package managers; Staying updated with snapshot packages; Building from sources; System requirements; Obtaining sources; SVN; Git; Building and installing LLVM; Using the autotools-generated configure script; Using CMake and Ninja; Using other Unix approaches; Windows and Microsoft Visual Studio; Mac OS X and Xcode; Summary
Chapter 2: External ProjectsIntroducing Clang extras; Building and installing Clang extra tools; Understanding Compiler-RT; Seeing Compiler-RT in action; Using the DragonEgg plugin; Building DragonEgg; Understanding the compilation pipeline with DragonEgg and LLVM tools; Understanding the LLVM test suite; Using LLDB; Exercising a debug session with LLDB; Introducing the libc++ standard library; Summary; Chapter 3: Tools and Design; Introducing LLVM''s basic design principles and its history; Understanding LLVM today; Interacting with the compiler driver; Using standalone tools
Delving into the LLVM internal designGetting to know LLVM''s basic libraries; Introducing LLVM''s C++ practices; Seeing polymorphism in practice; Introducing C++ templates in LLVM; Enforcing C++ best practices in LLVM; Making string references lightweight in LLVM; Demonstrating the pluggable pass interface; Writing your first LLVM project; Writing the Makefile; Writing the code; Navigating the LLVM source -- general advice; Understanding the code as a documentation; Asking the community for help; Coping with updates -- using the SVN log as a documentation; Concluding remarks; Summary
Chapter 4: The FrontendIntroducing Clang; Frontend actions; Libraries; Using libclang; Understanding Clang diagnostics; Reading diagnostics; Learning the frontend phases with Clang; Lexical analysis; Exercising lexical errors; Writing libclang code that uses the lexer; Preprocessing; Syntactic analysis; Understanding Clang AST nodes; Understanding the parser actions with a debugger; Exercising a parser error; Writing code that traverses the Clang AST; Serializing the AST with precompiled headers; Semantic analysis; Exercising a semantic error; Generating the LLVM IR code; Putting it together
Summary Chapter 5: The LLVM Intermediate Representation; Overview; Understanding the LLVM IR target dependency; Exercising basic tools to manipulate the IR formats; Introducing the LLVM IR language syntax; Introducing the LLVM IR in-memory model; Writing a custom LLVM IR generator; Building and running the IR generator; Learning how to write code to generate any IR construct with the C++ backend; Optimizing at the IR level; Compile-time and link-time optimizations; Discovering which passes matter; Understanding pass dependencies; Understanding the pass API; Writing a custom pass
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
Notes Online resource; title from PDF title page (ebrary, viewed September 4, 2014)
Subject Application software -- Development.
Computer software -- Development.
COMPUTERS -- Programming Languages -- C++.
COMPUTERS -- Programming -- General.
Application software -- Development
Computer software -- Development
Form Electronic book
Author Auler, Rafael, author
Sawant, Aniket, cover designer
ISBN 9781782166931
1782166939
1782166920
9781782166924