官术网_书友最值得收藏!

  • LLVM Essentials
  • Suyog Sarda Mayur Pandey
  • 227字
  • 2021-07-30 09:55:52

Chapter 1. Playing with LLVM

The LLVM Compiler infrastructure project, started in 2000 in University of Illinois, was originally a research project to provide modern, SSA based compilation technique for arbitrary static and dynamic programming languages. Now it has grown to be an umbrella project with many sub projects within it, providing a set of reusable libraries having well defined interfaces.

LLVM is implemented in C++ and the main crux of it is the LLVM core libraries it provides. These libraries provide us with opt tool, the target independent optimizer, and code generation support for various target architectures. There are other tools which make use of core libraries, but our main focus in the book will be related to the three mentioned above. These are built around LLVM Intermediate Representation (LLVM IR), which can almost map all the high-level languages. So basically, to use LLVM's optimizer and code generation technique for code written in a certain programming language, all we need to do is write a frontend for a language that takes the high level language and generates LLVM IR. There are already many frontends available for languages such as C, C++, Go, Python, and so on. We will cover the following topics in this chapter:

  • Modular design and collection of libraries
  • Getting familiar with LLVM IR
  • LLVM Tools and using them at command line
主站蜘蛛池模板: 陆河县| 舟曲县| 碌曲县| 宜良县| 清镇市| 方正县| 普宁市| 河北省| 靖安县| 龙胜| 德安县| 什邡市| 彭阳县| 汤阴县| 宁远县| 阳朔县| 中江县| 揭东县| 清新县| 钦州市| 白沙| 阿勒泰市| 延寿县| 寻甸| 敦煌市| 宁陕县| 石嘴山市| 邵阳市| 郯城县| 聊城市| 通州市| 双鸭山市| 蒲江县| 福建省| 遂川县| 景泰县| 巴中市| 桂东县| 缙云县| 静乐县| 旬邑县|