LLVM Cookbook Front Cover

LLVM Cookbook

  • Length: 284 pages
  • Edition: 1
  • Publisher:
  • Publication Date: 2015-06-30
  • ISBN-10: 178528598X
  • ISBN-13: 9781785285981
  • Sales Rank: #2301317 (See Top 100 Books)
Description

Over 80 engaging recipes that will help you build a compiler frontend, optimizer, and code generator using LLVM

About This Book

  • Write a frontend for any language to generate LLVM IR
  • Create optimization passes to optimize the IR code using LLVM Pass Infrastructure and Pass Manager
  • Design and implement structures for highly-optimized compilers using LLVM, through detailed step-by-step recipes

Who This Book Is For

The book is for compiler programmers who are familiar with concepts of compilers and want to indulge in understanding, exploring, and using LLVM infrastructure in a meaningful way in their work.

This book is also for programmers who are not directly involved in compiler projects but are often involved in development phases where they write thousands of lines of code. With knowledge of how compilers work, they will be able to code in an optimal way and improve performance with clean code.

In Detail

LLVM is a compiler framework with libraries that provides a modern source-and target-independent optimizer, along with a code generator.

This book not only explains the effective use of the compiler infrastructure that LLVM provides, but also helps you implement it in one of your projects. You start with a simple task to get you up-and-running with LLVM, followed by learning the process of writing a frontend for a language, which includes writing a lexer, a parser, and generating IR code. You will then see how to implement optimizations at different levels, generate target-independent code, and then map this generated code to a backend. Finally, you will look into the functionalities that the LLVM infrastructure provides, such as exception handling, LLVM Utility Passes, using sanitizers, the garbage collector, and how we can use these in our projects.

Table of Contents

Chapter 1: Llvm Design And Use
Chapter 2: Steps In Writing A Frontend
Chapter 3: Extending The Frontend And Adding Jit Support
Chapter 4: Preparing Optimizations
Chapter 5: Implementing Optimizations
Chapter 6: Target-Independent Code Generator
Chapter 7: Optimizing The Machine Code
Chapter 8: Writing An Llvm Backend
Chapter 9: Using Llvm For Various Useful Projects

To access the link, solve the captcha.