万本电子书0元读

万本电子书0元读

顶部广告

LLVM Essentials电子书

售       价:¥

37人正在读 | 0人评论 6.2

作       者:Suyog Sarda

出  版  社:Packt Publishing

出版时间:2015-12-21

字       数:26.5万

所属分类: 进口书 > 外文原版书 > 电脑/网络

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
Become familiar with the LLVM infrastructure and start using LLVM libraries to design a compiler About This Book Learn to use the LLVM libraries to emit intermediate representation (IR) from high-level language Build your own optimization pass for better code generation Understand AST generation and use it in a meaningful way Who This Book Is For This book is intended for those who already know some of the concepts of compilers and want to quickly get familiar with the LLVM infrastructure and the rich set of libraries that it provides. 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 In Detail 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. Style and approach This book deals with topics sequentially, increasing the difficulty level in a step-by-step approach. Each topic is explained with a detailed example, and screenshots are included to help you understand the examples.
目录展开

LLVM Essentials

Table of Contents

LLVM Essentials

Credits

About the Authors

About the Reviewer

www.PacktPub.com

Support files, eBooks, discount offers, and more

Why subscribe?

Free access for Packt account holders

Preface

What this book covers

What you need for this book

Who this book is for

Conventions

Reader feedback

Customer support

Downloading the example code

Errata

Piracy

Questions

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

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

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

4. Basic IR Transformations

Opt Tool

Pass and Pass Manager

Using other Pass info in current Pass

AnalysisUsage::addRequired<> method

AnalysisUsage:addRequiredTransitive<> method

AnalysisUsage::addPreserved<> method

Instruction simplification example

Instruction Combining

Summary

5. Advanced IR Block Transformations

Loop processing

Scalar evolution

LLVM intrinsics

Vectorization

Summary

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

7. Generating Code for Target Architecture

Sample backend

Defining registers and register sets

Defining the calling convention

Defining the instruction set

Implementing frame lowering

Lowering instructions

Printing an instruction

Summary

Index

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部