LLVM每日谈之六 LLVM的源码结构

简介:  作者:snsn1984 这里简单介绍下LLVM的源码结构,让大家知道LLVM的每个文件夹都放的是什么内容。 参考文档: http://llvm.org/docs/GettingStarted.html#getting-started llvm/examples 这个目录主要是一些简单例子,演示如何使用LLVM IR 和 JIT。

 作者:snsn1984

这里简单介绍下LLVM的源码结构,让大家知道LLVM的每个文件夹都放的是什么内容。

参考文档: http://llvm.org/docs/GettingStarted.html#getting-started

llvm/examples

这个目录主要是一些简单例子,演示如何使用LLVM IR 和 JIT。还有建立一个简单的编译器的例子的代码。

建立简单编译器的文档地址:http://llvm.org/docs/tutorial/

llvm/include

这个目录主要包含LLVM library的公共头文件。

llvm/lib

这个目录包含了大部分的LLVM的源码。在LLVM中大部分的源码都是以库的形式存在的,这样不同的工具之前就很容易共用代码。

llvm/projects

这个目录包含着一些依赖LLVM的工程,这些工程严格来说又不算LLVM一部分。

llvm/runtimes

这个目录包含了一些库,这些库会编译成LLVM的bitcode,然后当clang linking 程序的时候使用。

llvm/test

这个目录是LLVM的测试套件,包含了很多测试用例,这些测试用例是测试LLVM的所有基本功能的。

llvm/tools

这个目录理是各个工具的源码,这些工具都是建立在刚才上面的那些库的基础之上的。也是主要的用户接口。

llvm/utils

这个目录包含了一些和LLVM源码一起工作的应用。有些应用在LLVM的编译过程中是不可或缺的。

目录
相关文章
|
编译器
LLVM每日谈之五 LLVM文档介绍
作者:snsn1984 LLVM的文档挺多,而且都是官方的文档,刚开始接触的时候很容易让人摸不着头脑,这里就简单的介绍下这些文档。希望能给学习LLVM的人提供一些帮助。
1008 0
|
编译器
LLVM每日谈之九 谈LLVM的学习
作者:snsn1984 从接触LLVM编译器到现在,也有多半年时间了,在这多半年的时间里,也花了不少精力在上面。现在回过头来总结一下在LLVM的学习过程中的一些感悟。
1288 0
|
前端开发 IDE 编译器
LLVM编译器前端 Clang 简介
昨天晚上安装rails的开发环境,被ruby的编译搞的有点崩溃。下载的ruby的源码不能用系统自带的gcc -4.21编译,也不能用系统自带的clang进行编译,必须下载并使用gcc -4.2进行编译才能通过。今天稍微看看编译器的一些背景。
598 0
LLVM编译器前端 Clang 简介
LLVM每日谈之十七 LLVM/Clang的学习的思考
        之前一直关注LLVM和基于LLVM的工程(工具)多一些,对Clang和基于Clang的工具关注不是很多。这就导致了一个很严重的问题,觉的如果要深入理解Clang就必须要去读Clang的源码,这个想法不是不对,但是这不是唯一的路,而且Clang的源码太多,容易让人无法坚持下去,也容易让人无从下手。
1103 0
|
编译器 iOS开发 Windows
带你读《LLVM编译器实战教程》之一:构建和安装LLVM
本书的前半部分将向您介绍怎么样去配置、构建、和安装LLVM的不同软件库、工具和外部项目。接下来,本书的后半部分将向您介绍LLVM的各种设计细节,并逐步地讲解LLVM的各个编译步骤:前段、中间表示(IR)、后端、即时编译(JIT)引擎、跨平台编译和插件接口。本书包含有大量翔实的示例和代码片段,以帮助读者平稳顺利的掌握LLVM的编译器开发环境。
20373 0
|
前端开发 编译器 存储
LLVM每日谈之二 LLVM IR
作者:snsn1984 在介绍LLVM IR之前,我们需要先了解下LLVM的结构。传统的静态编译器分为三个阶段:前端、优化和后端。 LLVM的三阶段设计是这样的: 这样做的优点是如果需要支持一种新的编程语言,那么我们只需要实现一种新的前端。
1799 0
|
3月前
|
前端开发 编译器 C++
什么是LLVM项目?
什么是LLVM项目?
116 37
|
C++ 索引 Python
LLVM每日谈之二十一 一些关于编译器和LLVM/Clang的代码
作者:史宁宁(snsn1984) 自己收集了一些LLVM/Clang的代码,并且自己也在一点一点的写一些LLVM/Clang以及编译器的代码,在这里把这些代码库分享出来,欢迎大家交流探讨。
1165 0
LLVM每日谈之十四 如何给Clang添加一个属性
每次内容主要出自文档: “Clang” CFE Internals Manual地址: http://clang.llvm.org/docs/InternalsManual.html 在这个文档中,以简明的的一个例子说明了如何按照这个方式在Clang中添加一个属性。
1248 0
|
4月前
|
Unix 编译器 Linux
1.8.3 GNU编译器集合和LLVM项目
GNU项目自1987年起致力于开发自由UNIX软件,其成果之一GNU编译器集合(GCC)在指导委员会领导下持续演进,紧跟C语言标准。GCC适用于多种平台如UNIX、Linux和Windows,并常通过gcc或cc命令调用。另一方面,起源于2000年伊利诺伊大学研究项目的LLVM,提供了另一种开源编译器集合,其Clang编译器处理C代码,自2012年起成为FreeBSD默认C编译器,并良好支持最新C标准。
53 1

热门文章

最新文章