Library Hours
Monday to Friday: 9 a.m. to 9 p.m.
Saturday: 9 a.m. to 5 p.m.
Sunday: 1 p.m. to 9 p.m.
Naper Blvd. 1 p.m. to 5 p.m.
     
Limit search to available items
Results Page:  Previous Next
Author Pandey, Mayur, author.

Title LLVM cookbook : over 80 engaging recipes that will help you build a compiler frontend, optimizer, and code generator using LLVM / Mayur Pandey, Suyog Sarda. [O'Reilly electronic resource]

Publication Info. Birmingham, UK : Packt Publishing, 2015.
QR Code
Description 1 online resource (1 volume) : illustrations
Series Quick answers to common problems
Quick answers to common problems.
Note Includes index.
"Quick answers to common problems."
Contents Cover; Copyright; Credits; About the Authors; About the Reviewers; www.PacktPub.com; Table of Contents; Preface; Chapter 1: LLVM Design and Use; Introduction; Understanding modular design; Cross-compiling Clang/LLVM; Converting a C source code to LLVM assembly; Converting IR to LLVM bitcode; Converting LLVM bitcode to target machine assembly; Converting LLVM bitcode back to LLVM assembly; Transforming LLVM IR; Linking LLVM bitcode; Executing LLVM bitcode; Using the C frontend clang; Using the GO frontend; Using DragonEgg; Chapter 2: Steps in Writing a Frontend; Introduction
Defining a TOY languageImplementing a lexer; Defining Abstract Syntax Tree; Implementing a parser; Parsing simple expressions; Parsing binary expressions; Invoking a driver for parsing; Running lexer and parser on our TOY language; Defining IR code generation methods for each AST class; Generating IR code for expressions; Generating IR code for functions; Adding IR optimization support; Chapter 3: Extending the Frontend and Adding JIT Support; Introduction; Handling decision making paradigms -- if/then/else constructs; Generating code for loops
Handling user-defined operators -- binary operatorsHandling user-defined operators -- unary operators; Adding JIT support; Chapter 4: Preparing Optimizations; Introduction; Various levels of optimization; Writing your own LLVM pass; Running your own pass with the opt tool; Using another pass in a new pass; Registering a pass with pass manager; Writing an analysis pass; Writing an alias analysis pass; Using other analysis passes; Chapter 5: Implementing Optimizations; Introduction; Writing a dead code elimination pass; Writing an inlining transformation pass
Writing a pass for memory optimizationCombining LLVM IR; Transforming and optimizing loops; Reassociating expressions; Vectorizing IR; Other optimization passes; Chapter 6: Target-Independent Code Generator; Introduction; The life of an LLVM IR instruction; Visualizing LLVM IR CFG using GraphViz; Describing targets using TableGen; Defining an instruction set; Adding a machine code descriptor; Implementing the MachineInstrBuilder class; Implementing the MachineBasicBlock class; Implementing the MachineFunction class; Writing an instruction selector; Legalizing SelectionDAG
Optimizing SelectionDAGSelecting instruction from the DAG; Scheduling instructions in SelectionDAG; Chapter 7: Optimizing the Machine Code; Introduction; Eliminating common subexpression from machine code; Analyzing live intervals; Allocating registers; Inserting the prologue-epilogue code; Code emission; Tail call optimization; Sibling call optimisation; Chapter 8: Writing an LLVM Backend; Introduction; Defining registers and registers sets; Defining the calling convention; Defining the instruction set; Implementing frame lowering; Printing an instruction; Selecting an instruction
Summary 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.
Subject Compilers (Computer programs)
Optimizing compilers.
Programming software.
C++ (Computer program language)
Virtual computer systems.
Compilateurs (Logiciels)
Logiciels de programmation.
C++ (Langage de programmation)
Systèmes virtuels (Informatique)
C++ (Computer program language)
Compilers (Computer programs)
Optimizing compilers
Programming software
Virtual computer systems
Added Author Sarda, Suyog, author.
Added Title Low level virtual machine cookbook
Over 80 engaging recipes that will help you build a compiler frontend, optimizer, and code generator using LLVM
Other Form: Print version: Pandey, Mayur. LLVM cookbook : over 80 engaging recipes that will help you build a compiler frontend, optimizer, and code generator using LLVM. Birmingham, [England] ; Mumbai, [India] : Packt Publishing, ©2015 272 pages 9781785285981
ISBN 1785286404
178528598X
9781785285981
9781785286407 (electronic bk.)
Patron reviews: add a review
Click for more information
EBOOK
No one has rated this material

You can...
Also...
- Find similar reads
- Add a review
- Sign-up for Newsletter
- Suggest a purchase
- Can't find what you want?
More Information