LLVM 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
LLVM 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议 UIUC/MIT
开发语言 C/C++ 查看源码 »
操作系统 跨平台
软件类型 开源软件
所属分类 开发工具编译器
开发厂商
地区 不详
提 交 者 不详
适用人群 未知
收录时间 2008-11-02

软件简介

LLVM 是 Low Level Virtual Machine (低级虚拟机)的简称,这个库提供了与编译器相关的支持,可以作为多种语言编译器的后台来使用。能够进行程序语言的编译期优化、链接优化、在线编译优化、代码生成。LLVM的项目是一个模块化和可重复使用的编译器和工具技术的集合。LLVM是伊利诺伊大学的一个研究项目,提供一个现代化的,基于SSA的编译策略能够同时支持静态和动态的任意编程语言的编译目标。自那时以来,已经成长为LLVM的主干项目,由不同的子项目组成,其中许多正在生产中使用的各种商业和开源的项目,以及被广泛用于学术研究。

LLVM 是 Illinois 大学发起的一个开源项目,和之前为大家所熟知的JVM 以及 .net Runtime这样的虚拟机不同,这个虚拟系统提供了一套中立的中间代码和编译基础设施,并围绕这些设施提供了一套全新的编译策略(使得优化能够在编译、连接、运行环境执行过程中,以及安装之后以有效的方式进行)和其他一些非常有意思的功能。

对于普通的开发人员来说,LLVM计划提供了越来越多的可以使用、编译器以外的其他工具。例如代码静态检查工具 LLVM/Clang Static Analyzer,是一个 Clang 的子项目,能够使用同样的 Makefile 生成 HTML 格式的分析报告

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (14)

加载中
大家对LLVM的评论是在3个月前,我来凑个热闹
07/12 12:22
回复
举报
大家对LLVM的评论是在50分钟前,我来凑个热闹
04/26 20:26
回复
举报
大家对LLVM的评论是在7个月前,我来凑个热闹
04/26 19:36
回复
举报
大家对LLVM的评论是在2月前,我来凑个热闹
2019/09/20 17:45
回复
举报
大家对LLVM的评论是在7年前,我来凑个热闹
2019/07/06 14:29
回复
举报
把LLVM的文档都翻译一遍。
2019/02/12 14:57
回复
举报
大家对LLVM的评论是在3个月前,我来凑个热闹
2017/12/24 01:30
回复
举报
大家对LLVM的评论是在5年前,我来凑个热闹
2017/09/09 13:13
回复
举报
大家对LLVM的评论是在2年前,我来凑个热闹
2017/03/15 09:15
回复
举报
在Ubuntu环境下使用clang工具会出现与系统不兼容的问题,怎么回事呀? LLVM
2012/04/23 20:18
回复
举报
更多评论
10/13 11:33

LLVM 11.0.0 发布

在落后于原计划时间一个半月后,LLVM 11.0.0 现在终于正式发布。此版本中的一个亮点内容是提供了 Flang Fortran 编译器支持。同时 LLVM 11 还围绕以下情况提升了构建速度: 预编译头文件(pre-compiled headers) AMD Radeon "Navi 2" 支持 C++20 改进 在没有指定其他 C 标准时,默认使用 C17 已解析但尚未处理的 GNU "a...

3
1
发表于开发技能专区
08/22 07:18

LLVM 11.0-RC2 发布

LLVM 11.0-RC2 已发布,这是第二个也有可能是最后一个候选版本,适合用于测试。 经过半年的开发,LLVM 11 围绕以下这些情况提升了构建速度: 预编译头文件(pre-compiled headers) AMD Radeon "Navi 2" 支持 C++20 改进 在没有指定其他 C 标准时,默认使用 C17 已解析但尚未处理的 GNU "asm inline" C 扩展 用于 OpenMP 的...

0
2
发表于软件架构专区
08/10 08:32

LLVM Clang 11 预编译头新选项将带来大幅构建性能提升

科技外媒 phoronix 跟踪了 LLVM/Clang 11 源码更新中的一个构建新特性,如果将 clang-cl 驱动用于 MSVC 或通过其它方式使用预编译头(Pre-Compiled Headers,PCH)特性,则可以使用新选项来显著加快构建时间。 这一特性最早提交于去年 10 月,今年 4 月又被调整后 commit,并进入 LLVM 11 RC。主要原理是添加选项以实例化...

5
3
发表于服务端专区
06/22 08:35

LLVM 开发者对于重命名"master"的讨论

LLVM 项目最近一个待解决的任务是将其 Git 仓库中使用"master"命名的分支更改为更具包容性的描述。到目前为止,几乎所有发表意见的人都支持这种改变,不过仍存在一些开放性的问题有待解决,比如该如何称呼新的主开发分支、评估更改分支命名涉及的技术成本,以及这种变更应该如何快速实现。 在 LLVM-dev 开发者邮件列表上...

36
2
发表于开发技能专区
03/25 07:45

LLVM 10.0.0 发布

LLVM 10.0.0 发布了,此版本主要亮点包括: Clang 中支持 C++ Concepts Clang 不再默认在单独的进程中运行 Windows 控制流防护(CFG)检查 支持更多的处理器内核和功能 此外还有许多 bug 修复、优化和新的编译器诊断能力。 详情查看: https://releases.llvm.org/10.0.0/docs/ReleaseNotes.html...

19
2
发表于服务端专区
03/14 08:07

LLVM 10.0.0 RC 4 发布,正式版预计下周发布

LLVM 10.0.0 RC 4 发布了。 上周发布 RC 3 之后,原本计划中接下来就会发布 10.0.0 最终版本,但是因为 RC 3 中出现了一些 bug,所以开发团队多发布了一个 RC 4。 LLVM 10.0.0 的缓解措施可帮助抵消因为 Intel JCC 微码更新、AMD Zen 2 改进,以及将 MLIR 作为 LLVM 中新的中间表示(IR,Intermediate Representation)等...

0
3
发表于服务端专区
03/10 07:14

LLVM 10.0 RC3 发布,稳定版即将推出

LLVM 10.0 稳定版原本计划于2月底发布,但现在看来进度显然是落后了,因为突然出现了一个并不在计划中的 RC3 版本。 自 RC2 发布以来,LLVM 10.0 RC3 的提交/修复次数不到一百,更新方面也没有什么值得关注的亮点。因此如果没有出现严重的问题,相信 LLVM 10 稳定版很快就会发布。 LLVM 10.0 引入了对 Arm Neoverse N1/...

3
3
发表于软件架构专区
02/05 07:31

LLVM 10 首个 RC 版本发布

LLVM 10 首个 RC 版本已发布,源代码和文档可通过此链接获得,预编译的二进制文件也会将在可用时添加到此处。 LLVM 10.0 的缓解措施可帮助抵消 Intel JCC 微码更新、AMD Zen 2 改进,以及将 MLIR 作为 LLVM 中新的中间表示(IR,Intermediate Representation)等变更带来的性能影响。除此之外,对 Clang 中的 C/C++ 标准...

3
4
发表于软件架构专区
2019/09/20 07:31

LLVM 9.0 发布

LLVM 9.0 已经发布,LLVM 9.0 与 Clang9.0 C/C++ 编译器一起发布,该版本的主要亮点内容如下: 支持 ASM Goto,例如,使用 Clang 为 x86_64 构建主线 Linux 内核 RISC-V target 不再是实验性,而是默认构建的 对 OpenCL 实验性支持 C++ 其他改进包括 AMD Navi 支持、AMDGPU LLVM 编译器后端增强、AMD Zen 2“znver2” 支...

15
17
发表于开发技能专区
2019/03/21 13:21

LLVM 8.0.0 发布

LLVM 编译器套件项目释出了 8.0.0 版。LLVM 项目现在是每半年发布一个大版本,每个大版本将增加一个版本号,小版本号变化主要是同一分支的更新。主要变化包括:预测加载加固,ORC JIT API 并行编译,WebAssembly target 不再是实验性支出,初始化自动变量选项,改进 clang-cl 的 预编译头文件支持,/Zc:dllexportInline...

6
3
发表于AI & 大数据专区
2018/10/20 08:06

三年过去了,LLVM 仍然没有完成开源许可证的更换

早在2015年,LLVM 社区就有发起对代码进行重新授权的提案,希望能从现有的 NCSA 许可证更改为 Apache 2.0 。这三年内,关于许可证更换的可行性一直备受争议。 NCSA 是基于 MIT/X11 和 BSD 3 的许可证,更换许可证的目的一是降低代码贡献的门槛,鼓励更多人参与;二是提供对现有的贡献者专利保护;三是确保 LLVM 运行时库...

2
1
发表于服务端专区
2018/09/20 07:40

LLVM 7.0.0 发布,提升性能分析能力

LLVM 7.0.0 发布了,LLVM 是 Low Level Virtual Machine (低级虚拟机)的简称,这个库提供了与编译器相关的支持,可以作为多种语言编译器的后台来使用,它能够进行程序语言的编译优化、链接优化、在线编译优化与代码生成。 7.0.0 版本包含有关 SVN 修订版 338536 主干上的工作与在发布分支上的工作,这是社区过去六个月...

1
5
发表于开发技能专区
2018/05/18 08:28

LLVM 5.0.2 发布,缓解 Spectre 变种漏洞

原计划于3月底发布的 LLVM 5.0.2 直到 5 月中旬这个版本才实现。 这个新的 LLVM 5.0 稳定性更新的重要性在于它包含了针对 Specter Variant Two 缓解的编译器端 Retpoline 支持。 这已经在 LLVM 6.0 中找到,然后被移植到 LLVM 5.0,现在可以在这个最新版本的发行版中找到。 LLVM 5.0.2 中的 Specter V2 缓解适用于 x86 ...

1
1
发表于服务端专区
2018/05/08 08:26

LLVM 开发者退出事件持续发酵,Swift 语言之父回应

LLVM 资深开发者 Rafael 因不满社区变化宣布与项目分道扬镳的事件近日愈演愈烈,其公开邮件被广泛转发,并在 Twitter、Hacker News 和 Reddit 上引起了一波程序员是否应该要求彼此相互尊重的“大型辩论赛”。 Swift 语言之父 Chris Lattner ,同时还有另外一个身份是 LLVM 项目的主要发起人和作者之一,在事件发生后通过...

12
4
发表于软件架构专区
2018/05/05 08:28

因不满社区变化,LLVM 资深开发者发长邮件宣布退出

Rafael Avila de Espindola ,LLVM 编译器贡献排名第五的资深开发者,日前发布了一封长邮件宣布已决定与该项目分道扬镳。 邮件具体内容 Rafael 自 2006 年以来已为 LLVM 贡献了超过 4,300 个 commits ,添加了 157,679 行代码,是 LLVM 的排名第五的贡献者。 在邮件中,Rafael 回顾了他参与编译器开发的完整经历,从最初...

28
7
发表于服务端专区
2018/04/18 08:08

英特尔 Tremont CPU 将支持 LLVM 的 Clang 编译器

本月早些时候,英特尔 ISA 文档指出了代号为“Tremont”的新型 CPU 微架构,我们已经看到一些内核补丁也提到了英特尔 Tremont,现在 Tremont 微架构表示将会支持 LLVM 的 Clang 编译器。 英特尔还没有正式宣布“Tremont”,但所有迹象表明,它是 Goldmont/Goldmont Plus 的继任者,用于继承 Atom/Celeron/Pentium Silve...

0
1
发表于开发技能专区
2018/04/13 08:06

新 Red Hat 编译器工具箱:Clang、LLVM、GCC 等

为了让开发者用到最新的、稳定版本的开发工具,Red Hat 每年会发布两次编译器工具箱、脚本语言、开源数据库等工具的更新。这些产品被封装为 Red Hat 软件集合(脚本语言、开源数据库、Web工具等),Red Hat 开发工具箱(GCC)以及最近添加的编译器工具箱 Clang / LLVM、Go 和 Rust。这些都是可以通过 yum 安装的,并且包...

15
15
发表于服务端专区
2018/03/20 08:32

LLVM/Clang 6.0 和 5.0 的编译器 Benchmark 测试对比

LLVM/Clang 6.0 和 5.0 的编译器 Benchmark 测试这次会在四个不同的系统上进行,包括了 Intel/AMD Linux 平台,其中 Intel 和 AMD 各占两个。 四个系统都运行了 Ubuntu Linux x86_64,Intel 和 AMD 平台分别的配置如下:Intel Core i7 8700K (Coffeelake)、dual Xeon Gold 6138 (Skylake X)、Ryzen 7 1700 (Znver1) 以及...

6
4
发表于开发技能专区
2018/03/19 07:58

LLVM 5.0.2 计划 3 月底发布 可缓解 Spectre 变种漏洞

LLVM 6.0 已于本月早些时候发布,它使用了 Retpoline 编码技术,可有效缓解 Spectre V2 的变种漏洞。现在,开发团队表示 LLVM 5.0.2 也即将推出,以支持其之前的稳定版系列。 红帽公司的 Tom Stellard 正在计划开发一个 LLVM 5.0.2 版本,主要是为那些可能还不想切换到 LLVM 6.0.0 新版本的人提供 Spectre 漏洞缓解措施。...

3
0
发表于服务端专区
2018/03/09 08:03

LLVM/Clang 6.0.0 发布:改进的优化和新的编译器警告

LLVM/Clang 6.0.0 已正式发布,上个大版本是在半年前发布的 5.0.0 版。LLVM 现在的版本方案为,每发布一个大版本将增加一个版本号,小版本号变化主要是同一分支的更新。 这个版本是社区在过去六个月里工作的结果,有以下值得关注更新: 使用 Retpoline 编码技术,缓解 Spectre 变种 2 的漏洞 显着改进了用于 Windows 的 ...

4
5
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
2015/02/03 11:19

LLVM

LLVM,命名最早源自于底层虚拟机(Low Level Virtual Machine)的缩写[1]。它是一个编译器的基础建设,以C++写成。它是为了任意一种编程语言写成的程序,利用虚拟技术,创造出编译时期,链结时期,运行时期以及“闲置时期”的优化。

0
0
发表了博客
2018/09/21 20:26

[llvm] LLVM 核心类简明示例 : llvm::Value && llvm::Type && llvm::Constant

LLVM 核心类简明示例 : llvm::Value && llvm::Type && llvm::Constant llvm核心类位于 include/llvm/IR中,用以表示机器无关且表现力极强的LLVM IR。 llvm::Value llvm::Value则是这其中的重中之重,它用来表示一个具有类型的值。它是类图如下: llvm::Argument,llvm::BasicBlock,llvm::Constant,llvm::Instruction这些很...

0
0
发表了博客
2012/10/31 19:20

llvm每日谈之二 LLVM IR

作者:snsn1984 在介绍LLVM IR之前,我们需要先了解下LLVM的结构。传统的静态编译器分为三个阶段:前端、优化和后端。 LLVM的三阶段设计是这样的: 这样做的优点是如果需要支持一种新的编程语言,那么我们只需要实现一种新的前端。如果我们需要支持一种新的硬件设备,那我们只需要实现一个新的后端。而优化阶段因为是针对...

5
3
发表了博客
2012/05/31 09:43

LLVM的设计

“在过去的五年里,LLVM从一个学术项目成长为了一个通用的C,C++和Objective C编译器后端。其成功的关键之处在于其性能和适应能力;而二者都继承于 其独特的设计与实现。” 转载请注明:Linux人社区>英文资讯翻译专版.编译 英文原文: The design of LLVM posted by Thom Holwerda on Wed 30th May 2012 08:05 UTC "In ...

0
0
发表于软件架构专区
2012/10/31 17:57

llvm每日谈之一 llvm是什么

作者:snsn1984 写在前面的话: 最近接触llvm比较多,在这个上面花了不少的时间。感 觉llvm要完全理解透是个很不容易的事情,需要在学习过程中好好的整理下自己的思路。刚好又阅读了开源项目Storm的作者Nathan Marz的博客《You should blog even if you have no readers》,就打开自己的blog,开始了这个llvm每日谈的系列...

11
28
03/23 21:31

LLVM 初探

0x1. LLVM 架构简介 经典的三段式设计 LLVM,GCC, JIT(Java, Python) 等编译器都遵循经典的三段式设计 • 前端 (Frontend) - 词法分析,语法分析, 生成抽象语法树,生成中间语言 (例如 java 的字节码,llvm 的 ...

0
0
发表了博客
2016/04/28 14:38

编译llvm

一、 svn co http://llvm.org/svn/llvm-project/llvm/trunk src 二、src 同目录 mkdir build cd build cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DLLVM_APPEND_VC_REV=On -DLLVM_ENABLE_EH=On -DLLVM_CREATE_XCODE_TOOLCHAIN=On -DLLVM_ENABLE_RTTI=On -DLLVM_ENABLE_DOXYGEN=On ../src 编译: Ninja 完了,先到build...

0
0
发表了博客
2019/07/19 14:47

llvm-mctoll

为二进制文件生成 LLVM IR llvm-mctoll -d <binary> The raised result is generated as <binary>-dis.ll. To check the correctness of <binary>-dis.ll compile <binary>-dis.ll to an executable (or to a sha......

0
0
发表了博客
2013/02/28 11:23

LLVM每日谈之九 谈LLVM的学习

作者:snsn1984 从接触LLVM编译器到现在,也有多半年时间了,在这多半年的时间里,也花了不少精力在上面。现在回过头来总结一下在LLVM的学习过程中的一些感悟。(注:这里对LLVM的学习,不是指的是学习LLVM的使用,而是主要针对基于LLVM实现编译功能。) 1、 在开始学习LLVM之前,要有一个心里准备。因为在接下来的学习过...

1
3
2012/11/11 09:10

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

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

2
4
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了问答
02/08 23:24

【一周】Linux应对2038年问题 | 微软入场PWA | JVM生态报告 | Chrome 80

回顾一周社区热门资讯 第【五十九】期:20200201-20200207 先开个奖, 上期《春节期间开源/开发者资讯汇总》送出 10 本技术图书《漫画算法:小灰的算法之旅》,获奖的是以下几位: @青海湖里的一条鱼 、@皇虫 、@这先生 、@xiaoshu666 、@Yalong 、@jeffsui 、@WangTiny 、@empireghost 、@v1-alpha 、@2006 。 请在 16...

1
3
发表了问答
2019/09/22 08:56

【一周】Oracle全球首个自治OS、在自己写的CPU上运行自己写的OS、Java 13发布

回顾一周社区热门资讯 第【四十】期:20190914-20190920 点击相应标题,跳转阅读全文。 GNOME 3.34 正式发布 一年中的第 256 天,程序员你懂的 9 月 13 日是俄罗斯的法定程序员日,这一天是一年中的第 256 天,程序员一看就知道这个数字的特别之处:它是十六进制的第 100 天,同时也是 2^8 天(闰年是 9 月 12 日)。 En...

7
15
发表了问答
2019/06/22 21:31

【一周】Linux百度网盘 | Docker for WSL2 | VSCode Java安装包 | Edge for Win7

回顾一周社区热门资讯 第【二十八】期:20190615-20190621 点击相应标题,跳转阅读全文。 Chrome 76 Beta:增强暗黑模式、更快捷地安装 PWA 应用 Chrome 73 就已引入暗黑模式,最初只是在 macOS 中提供,后面的 Chrome 74 稳定版才将该特性逐渐推送到更多的 Windows 10 设备上。在 Chrome 76 Beta 中,暗黑模式得到了进一...

3
16
发表了问答
2016/05/30 17:07

llvm/clang感觉编译的时候好慢好慢

从直觉上讲比用cl慢的不是一点点,差不多慢到令人发指的程度 是我没编译好还是啥情况?

1
1
发表了问答
2016/09/08 16:27

代码转换是一座金矿

计算机语言的世界有一个奇怪的现象:不同的语言建立的国度彼此能够沟通的东西太少: 用 Java 写的函数,模块,框架,如果想在 Go 应用环境中使用,那么就要重新书写。虽然 C 语言书写的代码在一些个别的语言环境中可以使用,但这样的语言实在不多。 根据贸易的原则,如果 A 地生产一种商品比 B 地生产这种商品成本低,如...

6
4
发表了问答
2015/05/08 19:27

Object-c和C++哪个更难一些?

请问用过C++和Object-c的前辈们,Object和C++哪个学习和使用起来更难一些?另外苹果推出了swift,这是要放弃oc吗?

5
0
发表了问答
2014/06/11 08:40

swift 语言在 jvm上实现 是否可行?

swift语言是基于llvm实现的,是否可以用jvm来实现呢,ARC有那么多限制,何必不二八原则呢,把jvm的gc也用上。只是一些不成熟的想法欢迎讨论。 关于ARC的在jvm上的折衷实现(java 8的注解没了那么多限制,可以在编译时确认无法逃逸的对象栈上分配,在类加载的链接时也可以结合编译时自动加入的注解做点工作,这样gc的压力...

6
0
发表了问答
2012/06/14 12:57

LLVM在Windows和Linux下哪些IDE支持它?

最近开始吃苹果。但是苹果是公司的,回家不能吃。自己家里想学Objective-C就没辙了。gcc虽然支持Objective-C,但是还是更想用LLVM试试。 在家安装了GNUStep和MinGW版的LLVM,命令行编译倒是可以了。可是咱用惯了IDE,还是希望能在IDE里面编程。但是网上找了好久,像Eclipse和Netbeans都只支持Gcc,不支持LLVM。网上也没有...

3
0
发表了问答
2012/11/26 21:29

在Windows下面進行LLVM與CLANG的安裝

需要環境 本文假設你已經有下面的工具安裝在系統中,並且可以正確的使用。 SVN client (這是為了抓最新的llvm與clang的source code) cmake mingw32 用SVN下載source code 假設我們要將所有的LLVM與Clang程式碼放到c:\llvm_src,並且要將最後的llvm放到c:\llvm的目錄下。要注意,clang必須放在llvm source code目錄下的t...

6
10
发表了问答
2012/11/25 11:26

为什么gcc和llvm会混在一起?

@踏雁寻花 你好,想跟你请教个问题:为什么gcc和llvm会混在一起?

3
0
发表了问答
2013/09/30 12:49

ubuntu下使用llvm库出现未定义引用错误

我在Ubuntu(13.04)下通过svn手动编译安装了 llvm (3.2,svn版本191651)。makefile配置为 --enable-optimized --enable-jit --prefix=/usr/local/LLVM 编译安装后为了检验安装是否成功采用下面博文 http://www.ibm.com/developerworks/cn/opensource/os-createcompilerllvm1/ 给出的简化例子进行编译,具体代码如下 ///l...

1
0
发表了问答
2012/04/04 01:30

关于Windows下的Clang的编译环境设置

在Windows下配置LLVM-GCC编译链,可以编译C程序,也可以编译C++程序,但是无法解析C++ STL没有后缀名的头文件,怎么解决?

13
0
发表了问答
2013/02/20 17:02

如何让clang支持C\C++

新手求教,我在官网的svn上http://llvm.org/svn/llvm-project/libcxx/trunk/include/ libC++这个,编译的时候,在cstring的文件中明明inlucde了string.h这个文件,但是他们的目录下却没有string.h这个文件,求大虾帮助

3
0
发表了问答
2013/01/06 15:07

在windows下编译llvm出现问题

编译llvm的时候遇到了一些问题,我的操作步骤如下: 1、由于windows 版本的svn上没办法checkout代码(没找到原因),在官网上下载了llvm-3.1.src.tar.gz和clang-3.1.src.tar.gz的源代码。 2、安装了minggw 其中gcc版本是4.6.2,安装了cmake版本号是2.8.10.2 和 python 版本号是3.3.0检查环境变量没有问题。 3、把llvm的内...

3
0
发表了问答
2012/11/06 21:06

求教:怎么让clang/llvm的后端支持ptx

怎么让clang/llvm的后端支持ptx? 我下载了clang/llvm的源码并编译生成了相关的工具链,但不知道怎么让其后端支持ptx,该怎么做?

3
0
发表了问答
2012/09/10 14:58

Boost.Spirit+LLVM,双剑合璧开发一个脑残编译器

周末闲来无事,打算拿LLVM构造一个小程序练练手,正巧我最近在玩Brainfuck语言,所以决定拿LLVM构造一个Brainfuck的编译器。 一个典型的编译器分为几个部分: Lex/Parse,构造AST 将AST转换为中间代码,中间代码常用四元式(又叫三地址码) 将中间代码转换为原生目标代码 链接目标代码,生成可执行文件 Parser选用Boost...

1
2
发表了问答
2010/10/27 19:18

Clang 1.1编译后的可执行文件执行速度是gcc4.5的1600倍

编译这个简单文件,Clang 1.1编译后的可执行文件执行速度是gcc4.5的1600倍,已有人在gcc的bug跟踪系统递交了bug报告 哈哈太搞了

5
2
发表了问答
2012/06/10 17:49

Objective-C在LLVM 3.1中的新特性

与C和C++不同,Objective-C中不是由一个标准组织控制的,它一开始完全被Stepstone公司掌控,然而现在却被Apple公司取代了。 这种完全被一个公司掌控的模式可以算是一个优点和或者缺点。例如,C++规范的新版本的C + +11,历时13年完成。相比之下,Objective-C中可以发展地非常迅速,无需由委员会设计的问题所限制。但对应...

2
8
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
14 评论
242 收藏
分享
返回顶部
顶部