llvm 概述

目录

LLVM简介:

LLVM JIT:

网上比较好的博客:


LLVM简介:

LLVM 是一个模块化的、可重用的编译器和工具链的集合。尽管LLVM(low level virtual machine)这个名字 与 传统虚拟机 几乎没有关系。官方解释说:“LLVM”本身不是首字母缩略词,它是项目的全名。

LLVM比 gcc 先进在很多方面,我个人认为在jit,面向程序整个生命(所以运行过程)的分析和优化(“A Compilation Framework for Lifelong Program Analysis & Transformation”),前后端隔离,引入bison,flex等等,都比gcc先进。

用于C和C++的LLVM编译系统包括以下内容:

  • C、C++、Objto-C、FORTRAN等前端支持ANSI标准C和C++语言。此外,还支持许多GCC扩展。
  • LLVM指令集的一种稳定实现,它作为联机和脱机代码表示,以及汇编(ASCII)和字节码(二进制)读写器,以及校验器。
  • 一个功能强大的过程管理系统,它根据过程的依赖性自动对传递(包括分析、转换和代码生成过程)进行排序,并对其进行管道传输以提高效率。
  • 广泛的全局标量优化。
  • 一个具有丰富分析和转换集的链接时间过程间优化框架,包括复杂的整个程序指针分析、调用图构造和对概要文件引导优化的支持。
  • 一个易于重定目标的代码生成器,目前支持X86、X86-64、PowerPC、PowerPC-64、ARM、Thumb、SPARC、Alpha、CellSPU、MIPS、MSP430、SystemZ、WebAssembly和XCore。
  • 一个实时(JIT)代码生成系统,目前支持X86、X86-64、ARM、AArch64、Mips、SystemZ、PowerPC和PowerPC-64。
  • 支持生成DWARF调试信息。
  • 一个类似于gprof的分析系统。https://www.cnblogs.com/wuhh123/p/10668609.html
  • 一个包含许多基准代码和应用程序的测试框架。
  • 简化LLVM组件快速开发的api和调试工具。

LLVM JIT:


上图概览了jit的作用。

先收集一些介绍博客:

官方的文档:

Building a JIT: Starting out with KaleidoscopeJIT

https://llvm.org/docs/tutorial/BuildingAJIT1.html

https://zhuanlan.zhihu.com/p/60936932

https://www.oschina.net/question/565065_91864,编写一个jit运行的 hello world。

网上比较好的博客:

LLVM代码研读(三部分),比较好的源码入门介绍:https://blog.csdn.net/tomsoft/article/details/78206637

llvm入门篇,有安装,有概述:https://www.codercto.com/a/41721.html

应用和开发llvm,有详细的编译过程,https://www.cnblogs.com/wuhh123/p/10668609.html

《writing an LLVM Pass》,详细的llvm后端开发流程,可以看到llvm后端的原理:https://llvm.org/docs/WritingAnLLVMPass.html

《Implementing a Language with LLVM in Objective Caml》,包括llvm前端和后端的实现:https://llvm.org/docs/tutorial/index.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值