图书标签: LLVM 软件工程 编译器 计算机科学 计算机 编译原理
发表于2024-12-27
Learn LLVM Core Libraries, 2nd Edition pdf epub mobi txt 电子书 下载 2024
Overcome the steep learning curve to start effectively using LLVM libraries and tools
Key Features
Learn how to configure, build, and use LLVM and Clang based tools,
Explore the depths of the LLVM front-end, IR, code generator, and libraries, and learn how a modern compiler is implemented in a practical way,
Customize your project to benefit from Just in Time compilation (JIT), static analysis and source-to-source transformations.
Book Description
This book is intended for enthusiasts, computer developers, and compiler engineers interested in learning about the LLVM framework internals as well as for C++ software engineers keen to use compiler-based tools for code analysis and improvement. 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.
LLVM is a leading 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, optimizer, and backend. The final chapters of this book will address just-in-time compilation issues. Despite initially LLVM was not designed as a JIT-compiler, high demand for dynamic languages pushed the community to implement JIT-compilation features in LLVM. The book will summarize the current state of JIT-compilation support LLVM provides.
By the end of the book, with multiple hands-on examples and source code snippets, you will be able to put a solid and smooth first step into the LLVM compiler development framework.
What you will learn
Understand LLVM compiler high-level design
Extend the compiler frontend, optimizer and backend
Use LLVM as a just-in-time compiler
Understand an architecture description with TableGen
Use compiler-based tools to improve the quality of code in a C++ project
Understand how clang based tools could help even in non-compiler development
Understand LLVM coding style and coding practice
Who This Book Is For
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.
Rafael Auler
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.
Dmitrii Borisenkov
Dmitrii Borisenkov has been a compiler engineer for 6 years. He was involved in both R&D and product development. He contributed to multiple proprietary compiler front-ends, worked on transformation passes and built-in optimizations for a GPU compiler and also had experience of instruction selection improvement for CPU and GPU architectures. He is also an author of a few OpenCL patches committed to the mainline Clang. Dmitry specializes in LLVM, C++ Development, Compilers and Functional Programming. He has completed his Bachelor’s and Master’s degree in Computer Science from Moscow Power Engineering Institute (Technical University).
Bruno Lopes
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.
评分
评分
评分
评分
Learn LLVM Core Libraries, 2nd Edition pdf epub mobi txt 电子书 下载 2024