LLVM汇编是一款免费的构架编译器框架系统,采用C++编写而来,软件采用现代化的设计,和语言无关的中间代码,方便的进行编程语言的优化编译工作。此外小编还提供了LLVM安装教程,有需要的朋友赶快下载吧!

llvm介绍

llvm(low level virtual machine)是一个开源编译器框架,最早的时候是Illinois的一个研究项目,主要负责人是Chris Lattner,他现在就职于Apple. Apple 目前也是llvm项目的主要赞助者之一。

llvm有一个表达形式很好的IR语言,高度模块化的结构,因此它可以作为多种语言的后端,提供与编程语言无关的优化和针对多种CPU的代码生成功能。

传统编译器分三个阶段:

errno_t头文件android 头文件下载_LLVM

llvm也分三个阶段,但是设计上略微的有些区别:

errno_t头文件android 头文件下载_errno_t头文件android_02

不同的前端后端使用统一的 LLVM IR ,如果需要支持新的编程语言或者新的设备平台,只需要开发对应的前端和后端即可。同时基于 LLVM IR 我们可以很快的开发自己的编程语言。

目前llvm有很多的子项目,针对不同的需求进行了深入的扩展,具体参考llvm官方首页。

其中的Clang子项目实现了支持C/C++/Objective-C的优秀编译器前端,官方数据表明,在某些编译环境下,其编译速度要比gcc快三倍。

LLVM安装教程

1、在本站下载软件之后解压缩,找到安装文件,双击弹出欢迎安装界面,如图,点击下一步

errno_t头文件android 头文件下载_Apple_03

2、阅读安装协议,选择我同意

errno_t头文件android 头文件下载_LLVM_04

3、此处默认,继续下一步

errno_t头文件android 头文件下载_Apple_05

4、选择安装目录,默认的是C盘,想修改的点击浏览,选择好后点击下一步

errno_t头文件android 头文件下载_C语言头文件下载迅雷_06

5、选择安装文件夹,点击安装

errno_t头文件android 头文件下载_errno_t头文件android_07

6、安装完成

LLVM功能

终端用户特色:

快速编译和较少内存占用;有诊断功能;兼容GCC;

实用工具和应用:

基础架构模块库;可满足多样的客户需求(代码重构,静态分析,代码生成,等);允许集成到各种IDE中;使用LLVM'BSD'协议;

内部设计与实现:

一个简单的可移植的代码库;一个为C语言、Objective-C、C++、Objective-C++设计的通用的语法解析器;与C/C++/Objective-C及它们的衍生语言具有高度一致性;

LLVM特性

快:通过编译 OS X 上几乎包含了所有 C 头文件的 carbon.h 的测试,包括预处理 (Preprocess),语法 (lex),解析 (parse),语义分析 (Semantic Analysis),抽象语法树生成 (Abstract Syntax Tree) 的时间,Clang 是 Apple GCC 4.0 的 2.5x 快。(2007-7-25)

内存占用小:Clang 内存占用是源码的 130%,Apple GCC 则超过 10x。

诊断信息可读性强:我不会排版,推荐去网站观看。其中错误的语法不但有源码提示,还会在错误的调用和相关上下文的下方有~~~~~和^的提示,相比之下 GCC 的提示很天书。

GCC 兼容性。

设计清晰简单,容易理解,易于扩展增强。与代码基础古老的 GCC 相比,学习曲线平缓。

基于库的模块化设计,易于 IDE 集成及其他用途的重用。由于历史原因,GCC 是一个单一的可执行程序编译器,其内部完成了从预处理到最后代码生成的全部过程,中间诸多信息都无法被其他程序重用。Clang 将编译过程分成彼此分离的几个阶段,AST 信息可序列化。通过库的支持,程序能够获取到 AST 级别的信息,将大大增强对于代码的操控能力。对于 IDE 而言,代码补全、重构是重要的功能,然而如果没有底层的支持,只使用 tags 分析或是正则表达式匹配是很难达成的。