LLVM 3.3完全兼容C++11
来源:互联网 发布:查看linux 网卡 编辑:程序博客网 时间:2024/05/21 10:34
作者 Jeff Martin ,译者 臧秀涛 发布于 七月 01, 2013
最近发布的LLVM 3.3带来了大量新特性,其中包括通过Clang子项目实现的完全兼容C++11的编译器。最重要的新特性是支持一些新的CPU架构,包括AArch64(64位ARM)、AMD的R600 GPU和IBM的z/Architecture(s390x),再就是改进了对MIPS和PowerPC的支持。
LLVM有两种向量识别器(vectorizer):循环向量识别器和新增的SLP向量识别器。在3.3版本中,得益于一些改进,循环向量识别器能够生成更好的代码,在使用–O3标记时会默认启用该特性。新添加的特性包括指针的运行时检查、反向迭代器和If转换。SLP(superword-level parallelism)向量识别器可以将“类似的独立指令合并为向量指令”。SLP向量识别器通过“-fslp-vectorize”标记启用。
Dragon Egg是LLVM的子项目,它将LLVM技术带向了GCC。DragonEgg将GCC的优化器和代码生成器替换成了LLVM的。在3.3版本中还有一些值得注意的改进,如支持gcc-4.8.1及更高版本,提供了更好的调试信息等。LLDB(Low Level Debugger)添加了一些Linux特性:
- 支持观察点
- 通过一个vim插件,在vim中集成了lldb命令和程序状态
- 改进了寄存器支持,其中包括向量寄存器
- 可以使用make/ninja/auto-tools/clang 3.3/gcc 4.6构建
使用C++11的开发者,或考虑将C++11应用于现有项目的开发者,可以研究一下LLVM的C++11迁移工具——cpp11-migrate。按照LLVM博客上的说法,“C++11迁移程序的意图是通过从源代码到源代码的翻译,将现有的C++代码迁移为使用C++11特性的代码,以增强可维护性、可读性、运行时性能和编译时性能。”
LLVM 3.3以多种格式发布,其中包括源代码和预先构建好的二进制包。Linux、FreeBSD和Mac OS X用户可以直接从项目网站下载安装程序。作为选择,也可以检查操作系统发行包,或从源代码编译。LLVM团队提供了详细的编译说明。
查看英文原文:LLVM 3.3 Achieves Full C++11 Compliance
- LLVM 3.3完全兼容C++11
- C++完全兼容C的语法吗?
- LLVM
- LLVM
- llvm
- LLVM
- LLVM
- LLVM
- LLVM
- LLVM
- LLVM
- Objective c LLVM 4.0 的新特性
- LLVM学习笔记(11)
- html 加入收藏 完全兼容IE+Chrome
- 兼容IE的完全居中布局
- linux0.11内核完全剖析- sched.c
- linux0.11内核完全剖析- exit.c
- linux0.11内核完全剖析- fork.c
- Ibatis中parameterMap和MAP类型的Result的应用
- WPF初探——利用Winform库中的NotifyIcon实现托盘小程序
- 电容滤波的两个要点
- linux(三) 文件搜索和帮助
- jquery垂直公告滚动
- LLVM 3.3完全兼容C++11
- 电容
- 小小感想
- Jquery的替换(replaceWith())
- 开帖元年记事
- MySQL备份与恢复之MySQL 延时备份
- 差模与共模
- (13) 吧一吧Oracle的存储方案
- R语言与机器学习学习笔记(分类算法)(5)神经网络