Getting Started with LLVM Core Libraries
By Bruno Cardoso Lopes, Rafael Auler
Publisher: Packt Publishing
Final Release Date: August 2014
Pages: 314

LLVM is a bleeding edge compiler technology framework. Easily extendable and designed as a multitude of libraries, LLVM provides a smooth experience for compiler newcomers and reduces the steep learning curve often associated with compiler development.

To start, this book will show you how to configure, build, and install LLVM libraries, tools, and external projects. Next, you will be introduced to LLVM design and how it works in practice throughout each LLVM compiler stage: frontend, IR, backend, the JIT engine, cross-compilation capabilities, and the plugin interface. With multiple hands-on examples and source code snippets, Getting Started with LLVM Core Libraries ensures a solid and smooth  first step into the LLVM compiler development environment.

Product Details
Recommended for You
Customer Reviews

REVIEW SNAPSHOT®

by PowerReviews
oreillyGetting Started with LLVM Core Libraries
 
4.4

(based on 5 reviews)

Ratings Distribution

  • 5 Stars

     

    (2)

  • 4 Stars

     

    (3)

  • 3 Stars

     

    (0)

  • 2 Stars

     

    (0)

  • 1 Stars

     

    (0)

100%

of respondents would recommend this to a friend.

Pros

  • Helpful examples (3)
  • Well-written (3)

Cons

No Cons

Best Uses

  • Intermediate (3)
  • Novice (3)
  • Student (3)
    • Reviewer Profile:
    • Developer (3)

Reviewed by 5 customers

Displaying reviews 1-5

Back to top

 
4.0

Great introduction to llvm

By Chen

from San Jose

Verified Reviewer

Comments about oreilly Getting Started with LLVM Core Libraries:

This is a good book to start with llvm.
When I started working on llvm, I spent a lot of time finding documents on the llvm dev site. Unfortunately, some of the documents were out of date and poorly organized. This book provides the overview of llvm and gives you many useful step by step tutorial, which is really helpful for those who never work on llvm before. However, as the title states, this is to get started with llvm, and if you really want to learn llvm, you have to dive into the code.

 
4.0

Great for the beginners and developers

By el_lobo

from Germany

About Me Architect, Developer

Verified Reviewer

Comments about oreilly Getting Started with LLVM Core Libraries:

This book is a great, practical manual of LLVM project. It covers LLVM core source code with the most important external projects. It doesn't cover the source code line by line, but lists the most important classes and explains their role in the compiler tool chain. The book explains LLVM infrastructure starting from very abstract compiler concepts. Therefore it is a great piece of literature for people who want to get an overview of basics of compilers, but do not have a time to read details. The book starts with instructions on how to install the LLVM. It then follows the organization of LLVM itself: from the front end, over LLVM IR, to back-end. In each of these it briefly explains associated concept of compiler. After explaining certain concept, it fast dives into the source code, explaining how things are programmed in LLVM. Such approach is great for developers who want to use LLVM infrastructure for developing external tools. This book demonstrates how certain libraries can be reused from LLVM in order to start developing own tools. I really like simple instructions for installing the LLVM, as well as the explanation of the installation and usage of external LLVM projects such as DragonEgg and Compiler-RT. LLVM with Clang has a big database of tools and options which can be used with these tools. This book is doing an excellent job on listing the most important tools/options with examples and command line code. LLVM IR is explained in details. Also, LLVM back-end and LLVM JIT are explained with nice amount of details.

The book contains fair amount of block diagrams which illustrate the LLVM and compiler procedures in a simple, but a clear manner. It is well structured, for this amount of details. It also contains useful links for additional explanations and projects. Authors have gathered a lot of empirical knowledge and sets of best-use practice. For sure, this will make your start with LLVM faster and straightforward as it can be.

If you are starting with LLVM, or you are a developer who is using LLVM and wants to develop own tools based on LLVM, this is a definitely book for you. High level concept explanations are brief, code instructions are detailed and are mostly explained with examples. Explanations are made for MAC, Linux and Windows.

LLVM and Clang still have some challenges when it comes to their functioning on Windows. Unfortunately, for some problems that I have encountered using LLVM so far, I didn't find explanations in this book (e.g. trying to install the LLVM from command line, using c++ libraries, etc.). While LLVM JIT is explained in details, LLVM interpreter is only mentioned. When basic compiler concepts are explained, there is a quick jump to LLVM concepts and code. However, I have a feeling that LLVM concepts are explained with coding in mind. For developers, this is great. For people who are interested in architecture, this might not be enough.

 
5.0

Excellent book to get started with LLVM

By VFloeder

from Bremerhaven, Germany

About Me Designer, Developer, Educator

Verified Reviewer

Pros

  • Accurate
  • Concise
  • Easy to understand
  • Helpful examples
  • Well-written

Cons

    Best Uses

    • Intermediate
    • Novice
    • Student

    Comments about oreilly Getting Started with LLVM Core Libraries:

    Beginning with very basic things like getting the source code and the original documentation to let you build everything from scratch, the book quickly lets you dig into various parts of the toolchain, enabling you to use parts of them for your own purposes.

    However, the book uses the 3.4 version, giving some hints regarding the actual 3.5 version - so if you want to walk through the book without surprises, I recommend to use the 3.4 version of LLVM first and update later. - Be aware, that if you bootstrap the toolchain, your current compiler might also have some impact on how smoothly you get through the build process.

    So if you want to install LLVM and get a good understanding of how the various parts work together then this is the book that you have been waiting for.

    However, I also recommend it If you are looking for a book that lets you get a deeper insight of various central mechanisms and data-structures of LLVM, just skip the very basic parts.

    Well, I have learned a lot, so I definitely recommend it!

     
    5.0

    Most updated and basic tutorial to start

    By Sandeep

    from Illinois

    About Me Student

    Verified Reviewer

    Pros

    • Accurate
    • Concise
    • Easy to understand
    • Helpful examples
    • Well-written

    Cons

      Best Uses

      • Expert
      • Intermediate
      • Novice
      • Student

      Comments about oreilly Getting Started with LLVM Core Libraries:

      One of the problems that I faced with the online tutorials is that many of them are not updated to the recent version and the information seems to be scattered and there is no clear guidance on where to start from. This book is the first of its kind to give the most updated information also covering up the most basic requirement. Also it is a very good tutorials for learning llvm IR as it explains that with many good chosen examples. For those interested in learning the back end of the compiler this book is an excellent start.
      Overall i liked this book because of the depth it covers with good lucidity.

       
      4.0

      Good book to start digging into LLVM

      By Evgeny Astigeevich

      from Cambridge, UK

      About Me Developer

      Verified Reviewer

      Pros

      • Helpful examples
      • Well-written

      Cons

      • Not comprehensive enough

      Best Uses

      • Intermediate
      • Novice
      • Student

      Comments about oreilly Getting Started with LLVM Core Libraries:

      I've recently started working with Clang/LLVM tools. I read the documentation from the LLVM web site and watched videos from LLVM-related conferences. The major problem is that most information is out of date. You need to look at many places to get your code working.

      The book is exactly what is written in its title: getting started. It give basics of each major part of LLVM. After reading it you will be able to build it from scratch. What is most important the book shows in details how components of LLVM are built into a compiler toolchain: from front-end (clang) to back-end (optimizer and code generation). It's demonstrated that the LLVM framework is designed as a perfect modular system which allows easily adapting it for the custom projects.

      The book is for people who understand internals of a compiler and how a compiler toolchain is organized. It does not focus on this. Of course you can use it in addition to your CS course to see how theoretical ideas in compiler engineering are implemented practically. Bare in mind the book is only the first step to be good at LLVM. A valuable feature of the book is links to related documentation on the LLVM site.

      I've got this book in two formats: PDF and ePub. The first I use on my desktop. The second I read on iPad. The PDF version is my favourite. Examples in the ePub version look messed due to word wrapping.

      Why did I give 4 instead of 5? The price is a little bit high for such a book. The book will be out of date in a year - two. The LLVM project is evolving very fast. Another thing is lack of details of LLVM structures, API and design decisions. I guess they were limited by the size of the book and time. The official LLVM site also has the same problem.

      Anyway this is a good book to quickly start digging into LLVM.

      My book came form the publisher site http://bit.ly/1swdanB where source code of examples can be found.

      Displaying reviews 1-5

      Back to top

       
      Buy 2 Get 1 Free Free Shipping Guarantee
      Buying Options
      Immediate Access - Go Digital what's this?
      Ebook:  $26.99
      Formats:  ePub, Mobi, PDF