2 options
Getting started with LLVM core libraries : get to grips with LLVM essentials and use the core libraries to build advanced tools / Bruno Cardoso Lopes, Rafael Auler ; cover image by Aniket Sawant.
- Format:
- Book
- Author/Creator:
- Lopes, Bruno Cardoso, author.
- Auler, Rafael, author.
- Series:
- Community experience distilled.
- Community Experience Distilled
- Language:
- English
- Subjects (All):
- Application software--Development.
- Application software.
- Computer software--Development.
- Computer software.
- Physical Description:
- 1 online resource (314 p.)
- Edition:
- 1st edition
- Place of Publication:
- Birmingham, England : Packt Publishing Ltd, 2014.
- Language Note:
- English
- System Details:
- text file
- Biography/History:
- Lopes Bruno: Bruno Lopes received a PhD in Computer Science from University of Campinas, Brazil. He's been an LLVM contributor since 2007 and implemented the MIPS backend from scratch, which he has been maintaining for several years. Among his other contributions, he has written the x86 AVX support and improved the ARM assembler. His research interests include code compression techniques and reduced bit width ISAs. In the past, he has also developed drivers for Linux and FreeBSD operating systems. Auler Rafael: Rafael Auler is a PhD candidate at University of Campinas, Brazil. He holds a Master's degree in Computer Science and a Bachelor's degree in Computer Engineering from the same university. For his Master's work, he wrote a proof-of-concept tool that automatically generates LLVM backends based on architecture description files. Currently, his PhD research topics include dynamic binary translation, Just-in-Time compilers, and computer architecture. Rafael was also a recipient of the Microsoft Research 2013 Graduate Research Fellowship Award.
- Summary:
- This book is intended for enthusiasts, computer science students, and compiler engineers interested in learning about the LLVM framework. You need a background in C++ and, although not mandatory, should know at least some compiler theory. Whether you are a newcomer or a compiler expert, this book provides a practical introduction to LLVM and avoids complex scenarios. If you are interested enough and excited about this technology, then this book is definitely for you.
- Contents:
- ""Cover""; ""Copyright""; ""Credits""; ""About the Authors""; ""About the Reviewers""; ""www.PacktPub.com""; ""Table of Contents""; ""Preface""; ""Chapter 1: Build and Install LLVM""; ""Understanding LLVM versions""; ""Obtaining prebuilt packages""; ""Obtaining the official prebuilt binaries""; ""Using package managers""; ""Staying updated with snapshot packages""; ""Building from sources""; ""System requirements""; ""Obtaining sources""; ""SVN""; ""Git""; ""Building and installing LLVM""; ""Using the autotools-generated configure script""; ""Using CMake and Ninja""
- ""Using other Unix approaches""""Windows and Microsoft Visual Studio""; ""Mac OS X and Xcode""; ""Summary""; ""Chapter 2: External Projects""; ""Introducing Clang extras""; ""Building and installing Clang extra tools""; ""Understanding Compiler-RT""; ""Seeing Compiler-RT in action""; ""Using the DragonEgg plugin""; ""Building DragonEgg""; ""Understanding the compilation pipeline with DragonEgg and LLVM tools""; ""Understanding the LLVM test suite""; ""Using LLDB""; ""Exercising a debug session with LLDB""; ""Introducing the libc++ standard library""; ""Summary""
- ""Chapter 3: Tools and Design""""Introducing LLVM's basic design principles and its history""; ""Understanding LLVM today""; ""Interacting with the compiler driver""; ""Using standalone tools""; ""Delving into the LLVM internal design""; ""Getting to know LLVM's basic libraries""; ""Introducing LLVM's C++ practices""; ""Seeing polymorphism in practice""; ""Introducing C++ templates in LLVM""; ""Enforcing C++ best practices in LLVM""; ""Making string references lightweight in LLVM""; ""Demonstrating the pluggable pass interface""; ""Writing your first LLVM project""; ""Writing the Makefile""
- ""Writing the code""""Navigating the LLVM source � general advice""; ""Understanding the code as a documentation""; ""Asking the community for help""; ""Coping with updates � using the SVN log as a documentation""; ""Concluding remarks""; ""Summary""; ""Chapter 4: The Frontend""; ""Introducing Clang""; ""Frontend actions""; ""Libraries""; ""Using libclang""; ""Understanding Clang diagnostics""; ""Reading diagnostics""; ""Learning the frontend phases with Clang""; ""Lexical analysis""; ""Exercising lexical errors""; ""Writing libclang code that uses the lexer""; ""Preprocessing""
- ""Syntactic analysis""""Understanding Clang AST nodes""; ""Understanding the parser actions with a debugger""; ""Exercising a parser error""; ""Writing code that traverses the Clang AST""; ""Serializing the AST with precompiled headers""; ""Semantic analysis""; ""Exercising a semantic error""; ""Generating the LLVM IR code""; ""Putting it together""; ""Summary""; ""Chapter 5: The LLVM Intermediate Representation""; ""Overview""; ""Understanding the LLVM IR target dependency""; ""Exercising basic tools to manipulate the IR formats""; ""Introducing the LLVM IR language syntax""
- ""Introducing the LLVM IR in-memory model""
- Notes:
- Includes index.
- Description based on online resource; title from PDF title page (ebrary, viewed September 4, 2014).
- ISBN:
- 9781782166931
- 1782166939
- OCLC:
- 889674347
The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.