LLVM Essentials

Become familiar with the LLVM infrastructure and start using LLVM libraries to design a compiler
Preview in Mapt

LLVM Essentials

Suyog Sarda, Mayur Pandey

2 customer reviews
Become familiar with the LLVM infrastructure and start using LLVM libraries to design a compiler

Quick links: > What will you learn?> Table of content> Product reviews

Mapt Subscription
FREE
$29.99/m after trial
eBook
$14.00
RRP $19.99
Save 29%
Print + eBook
$24.99
RRP $24.99
What do I get with a Mapt Pro subscription?
  • Unlimited access to all Packt’s 5,000+ eBooks and Videos
  • Early Access content, Progress Tracking, and Assessments
  • 1 Free eBook or Video to download and keep every month after trial
What do I get with an eBook?
  • Download this book in EPUB, PDF, MOBI formats
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
What do I get with Print & eBook?
  • Get a paperback copy of the book delivered to you
  • Download this book in EPUB, PDF, MOBI formats
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
What do I get with a Video?
  • Download this Video course in MP4 format
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
$0.00
$14.00
$24.99
$29.99 p/m after trial
RRP $19.99
RRP $24.99
Subscription
eBook
Print + eBook
Start 14 Day Trial

Frequently bought together


LLVM Essentials Book Cover
LLVM Essentials
$ 19.99
$ 14.00
LLVM Cookbook Book Cover
LLVM Cookbook
$ 35.99
$ 25.20
Buy 2 for $31.50
Save $24.48
Add to Cart

Book Details

ISBN 139781785280801
Paperback166 pages

Book Description

LLVM is currently the point of interest for many firms, and has a very active open source community. It provides us with a compiler infrastructure that can be used to write a compiler for a language. It provides us with a set of reusable libraries that can be used to optimize code, and a target-independent code generator to generate code for different backends. It also provides us with a lot of other utility tools that can be easily integrated into compiler projects.

This book details how you can use the LLVM compiler infrastructure libraries effectively, and will enable you to design your own custom compiler with LLVM in a snap.

We start with the basics, where you’ll get to know all about LLVM. We then cover how you can use LLVM library calls to emit intermediate representation (IR) of simple and complex high-level language paradigms. Moving on, we show you how to implement optimizations at different levels, write an optimization pass, generate code that is independent of a target, and then map the code generated to a backend. The book also walks you through CLANG, IR to IR transformations, advanced IR block transformations, and target machines.

By the end of this book, you’ll be able to easily utilize the LLVM libraries in your own projects.

Table of Contents

Chapter 1: Playing with LLVM
Modular design and collection of libraries
Getting familiar with LLVM IR
LLVM tools and using them in the command line
Summary
Chapter 2: Building LLVM IR
Creating an LLVM module
Emitting a function in a module
Adding a block to a function
Emitting a global variable
Emitting a return statement
Emitting function arguments
Emitting a simple arithmetic statement in a basic block
Emitting if-else condition IR
Emitting LLVM IR for loop
Summary
Chapter 3: Advanced LLVM IR
Memory access operations
Getting the address of an element
Reading from the memory
Writing into a memory location
Inserting a scalar into a vector
Extracting a scalar from a vector
Summary
Chapter 4: Basic IR Transformations
Opt Tool
Pass and Pass Manager
Using other Pass info in current Pass
Instruction simplification example
Instruction Combining
Summary
Chapter 5: Advanced IR Block Transformations
Loop processing
Scalar evolution
LLVM intrinsics
Vectorization
Summary
Chapter 6: IR to Selection DAG phase
Converting IR to selectionDAG
Legalizing SelectionDAG
Optimizing SelectionDAG
Instruction Selection
Scheduling and emitting machine instructions
Register allocation
Code Emission
Summary
Chapter 7: Generating Code for Target Architecture
Sample backend
Implementing frame lowering
Lowering instructions
Printing an instruction
Summary

What You Will Learn

  • Get an introduction to LLVM modular design and LLVM tools
  • Convert frontend code to LLVM IR
  • Implement advanced LLVM IR paradigms
  • Understand the LLVM IR Optimization Pass Manager infrastructure and write an optimization pass
  • Absorb LLVM IR transformations
  • Understand the steps involved in converting LLVM IR to Selection DAG
  • Implement a custom target using the LLVM infrastructure
  • Get a grasp of C’s frontend clang, an AST dump, and static analysis

Authors

Table of Contents

Chapter 1: Playing with LLVM
Modular design and collection of libraries
Getting familiar with LLVM IR
LLVM tools and using them in the command line
Summary
Chapter 2: Building LLVM IR
Creating an LLVM module
Emitting a function in a module
Adding a block to a function
Emitting a global variable
Emitting a return statement
Emitting function arguments
Emitting a simple arithmetic statement in a basic block
Emitting if-else condition IR
Emitting LLVM IR for loop
Summary
Chapter 3: Advanced LLVM IR
Memory access operations
Getting the address of an element
Reading from the memory
Writing into a memory location
Inserting a scalar into a vector
Extracting a scalar from a vector
Summary
Chapter 4: Basic IR Transformations
Opt Tool
Pass and Pass Manager
Using other Pass info in current Pass
Instruction simplification example
Instruction Combining
Summary
Chapter 5: Advanced IR Block Transformations
Loop processing
Scalar evolution
LLVM intrinsics
Vectorization
Summary
Chapter 6: IR to Selection DAG phase
Converting IR to selectionDAG
Legalizing SelectionDAG
Optimizing SelectionDAG
Instruction Selection
Scheduling and emitting machine instructions
Register allocation
Code Emission
Summary
Chapter 7: Generating Code for Target Architecture
Sample backend
Implementing frame lowering
Lowering instructions
Printing an instruction
Summary

Book Details

ISBN 139781785280801
Paperback166 pages
Read More
From 2 reviews

Read More Reviews

Recommended for You

LLVM Cookbook Book Cover
LLVM Cookbook
$ 35.99
$ 25.20
Tkinter GUI Application Development Blueprints Book Cover
Tkinter GUI Application Development Blueprints
$ 35.99
$ 25.20
Mastering Qt 5 Book Cover
Mastering Qt 5
$ 35.99
$ 25.20
Mastering Blockchain Book Cover
Mastering Blockchain
$ 39.99
$ 28.00
Building Blockchain Projects Book Cover
Building Blockchain Projects
$ 35.99
$ 25.20
ImageMagick Tricks Book Cover
ImageMagick Tricks
$ 20.99
$ 2.10