• This repository has been archived on 02/Feb/2022
  • Stars
    star
    519
  • Rank 85,261 (Top 2 %)
  • Language
    TeX
  • License
    Apache License 2.0
  • Created over 3 years ago
  • Updated almost 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

《Learn LLVM 12》的非专业个人翻译

Learn LLVM 12

A beginner's guide to learning LLVM compiler tools and core libraries with C++

(使用C++学习LLVM编译器和核心库的初学者教程)

  • 作者:Kai Nacke

  • 译者:陈晓伟

  • 原文发布时间:2021年5月28日 (来源亚马逊)

翻译是译者用自己的思想,换一种语言,对原作者想法的重新阐释。鉴于我的学识所限,误解和错译在所难免。如果你能买到本书的原版,且有能力阅读英文,请直接去读原文。因为与之相较,我的译文可能根本不值得一读。

— 云风,程序员修炼之道第2版译者

本书概述

学习如何构建和使用编译器,包括前端、流水线优化和利用LLVM核心库的强大功能构建新的后端编译器。

LLVM是为了弥合编译器理论和实际开发之间的差异而出现的。它提供了模块化的代码库和先进的工具,帮助开发人员轻松地构建编译器。本书提供了对LLVM的介绍,帮助读者在各种情况下构建和使用编译器。

本书将从配置、构建和安装LLVM库、工具和外部项目开始。接着,向您介绍LLVM的设计,以及在每个编译器阶段(前端、优化器和后端)的实际工作方式。以实际编程语言为例,学习如何使用LLVM开发前端编译器,并生成LLVM IR,将其交给优化流水线,并从中生成机器码。后面的章节将展示如何扩展LLVM,以及LLVM中的指令选择是如何工作的。在了解如何为LLVM开发新的后端编译器之前,将重点讨论即时编译问题和LLVM提供的JIT编译的支持情况。

阅读本书后,您将获得使用LLVM编译器开发框架的实际经验,并得到一些具有帮助性的实际示例和源代码片段。

关键特性

  • 学习如何有效地使用LLVM
  • 理解LLVM编译器的高级设计,并将原则应用到自己的编译器中
  • 使用基于编译器的工具来提高C++项目的代码质量

内容纲要

  • 配置、编译和安装LLVM框架
  • 理解LLVM源码的结构
  • 了解在项目中可以使用LLVM做什么
  • 探索编译器是如何构造的,并实现一个小型编译器
  • 为通用源语言构造生成LLVM IR
  • 建立优化流水线,并根据自己的需要进行调整
  • 使用转换通道和clang工具对LLVM进行扩展
  • 添加新的机器指令和完整的后端编译器

作者简介

Kai Nacke是一名专业IT架构师,目前居住在加拿大多伦多。毕业于德国多特蒙德技术大学的计算机科学专业。他关于通用哈希函数的毕业论文,被评为最佳论文。

他在IT行业工作超过20年,在业务和企业应用程序的开发和架构方面有丰富的经验。他在研发一个基于LLVM/Clang的编译器。

几年来,他一直是LDC(基于LLVM的D语言编译器)的维护者。在Packt出版过《D Web Development》一书,他也曾在自由和开源软件开发者欧洲会议(FOSDEM)的LLVM开发者室做过演讲。

审评者介绍

Suyog Sarda是一名专业的软件工程师和开源爱好者,专注于编译器开发和编译器工具,是LLVM开源社区的积极贡献者。他毕业于了印度浦那工程学院,具有计算机技术学士学位。Suyog还参与了ARM和X86架构的代码性能改进,一直是Tizen项目编译团队的一员,对编译器开发的兴趣在于代码优化和向量化。之前,他写过一本关于LLVM的书,名为《LLVM Cookbook》,由Packt出版。除了编译器,Suyog还对Linux内核开发感兴趣。他在迪拜Birla Institute of Technology的2012年IEEE Proceedings of the International Conference on Cloud Computing, Technologies, Applications, and Management上发表了一篇题为《VM pin and Page Coloring Secure Co-resident Virtualization in Multicore Systems》的技术论文。

本书相关

More Repositories

1

Cpp_Concurrency_In_Action

📖 作为对《C++ Concurrency in Action》英文版的中文翻译。
1,919
star
2

CPP-Concurrency-In-Action-2ed-2019

📖 作为对《C++ Concurrency in Action - SECOND EDITION》的中文翻译。
1,774
star
3

CMake-Cookbook

📖 作为对《CMake Cookbook》的中文翻译。
1,191
star
4

CPP-17-STL-cookbook

作为对《C++17 STL cookbook》英文版的中文翻译。
1,108
star
5

Concurrency-with-Modern-Cpp

📖 作为对《Concurrency with Modern C++》的中文翻译。
202
star
6

Modern-CMake-for-Cpp

《Modern CMake for C++》的非专业个人翻译
TeX
133
star
7

Heterogeneous-Computing-with-OpenCL-2.0

📖 作为对《Heterogeneous Computing with OpenCL 2.0》英文版的中文翻译。
107
star
8

Cpp-Templates-2nd

《C++ Templates The Complete Guide - second edition》的非专业个人翻译
TeX
98
star
9

CPP-20-STL-Cookbook

《C++20 STL Cookbook》的非专业个人翻译
TeX
96
star
10

LLVM-Techniques-Tips-and-Best-Practies

《LLVM Techniques, Tips, and Best Practices》的非专业个人翻译
TeX
89
star
11

The-Art-of-Writing-Efficient-Programs

《The Art of Writing Efficient Programs》的非专业个人翻译
TeX
59
star
12

CMake-Best-Practices

《CMake Best Practices》的非专业个人翻译
TeX
54
star
13

CPP-Move-Semantics

《C++ Move Semantics》的非专业个人翻译
TeX
52
star
14

Expert-Cpp

Expert C++的个人翻译
TeX
50
star
15

Data-Paralle-Cpp

个人翻译《Data Parallel C++》
TeX
49
star
16

Software-Architecture-with-Cpp

《Software Architecture with C++》的非专业个人翻译
TeX
46
star
17

CXX20-Get-Details

《C++20 - Get the Details 》的非专业个人翻译
TeX
39
star
18

Template-Metaprogramming-with-CPP

《Template Metaprogramming with C++ 》的非专业个人翻译
TeX
28
star
19

The-CXX-Library-Fourth-Edition-include-CXX23

《The C++ Standard Library》的非专业个人翻译
TeX
12
star
20

xiaoweiChen

MySelf
6
star
21

Learning-Accurate-Low-Bit-Deep-Neural-Networks-with-Stochastic-Quantization

作为对论文Learning Accurate Low-Bit Deep Neural Networks with Stochastic Quantization的中文翻译。
3
star
22

Tensorflow-2.x-Alexnet

A TensorFlow 2.x implementation of AlexNet
Python
1
star
23

Towards-Principled-Design-of-Deep-Convolutional-Networks

1
star
24

Tensorflow-2.x-ResNet

A TensorFlow 2.x implementation of ResNet
Python
1
star