把握行业变革关键节点,12 月 19 日 - 20 日,AICon北京站即将重磅启幕! 了解详情
写点什么

LLVM 3.3 完全兼容 C++11

  • 2013-07-01
  • 本文字数:779 字

    阅读完需:约 3 分钟

最近发布的 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

2013-07-01 10:542628
用户头像
臧秀涛 略懂技术的运营同学。

发布了 300 篇内容, 共 150.6 次阅读, 收获喜欢 35 次。

关注

评论

发布
暂无评论
发现更多内容

Linux Page Cache调优在Kafka中的应用

vivo互联网技术

大数据 kafka

基于Ambari的大数据平台搭建

数据社

大数据 hadoop ambari

性能优化-技术专题-top和jstack分析高CPU问题

码界西柚

JVM

揭秘MySQL主从数据不一致

Simon

MySQL 主从复制

影响音视频延迟的关键因素(二): 采集、前处理、编解码

ZEGO即构

H264 API 3A算法

90后程序员小姐姐在线征婚!年薪70w!拥有五套房!她却担心自己因为年龄大嫁不出去!

程序员生活志

程序员

芯片破壁者(十三):台湾地区半导体的古史新证

脑极体

设计模式-技术专题-建造者模式(Builder)

码界西柚

Java 设计模式

LeetCode题解:66. 加一,倒序遍历+可中途退出,JavaScript,详细注释

Lee Chen

大前端 LeetCode

python自动生成一整月的排班表

不会写诗的王维

Python

暴雪员工抗议薪酬不公,部分员工称甚至难以维持生计

程序员生活志

职场

卡丁车的后轴是如何做到差速的?

TGP大跨步

科普 卡丁车 TGP 大跨步 素材

【数据结构与算法】用动图解说数组、链表、跳表原理与实现

三钻

数组 链表 数据结构与算法 跳表

因为套用这个模板,我成了公司最佳员工

华为云开发者联盟

网站架构 华为云 网站搭建 匀速建站 SEO

哥尼斯堡七桥问题

NashSP

PHP中的错误和异常

书旅

php 异常 常见错误

IOTA架构下的数据采集

易观大数据

PM2 管理node.js开机自启动(非root用户)

不会写诗的王维

node.js

他被称为"中国第一程序员",一人之力单挑微软!真牛!

程序员生活志

LeetCode题解:11. 盛最多水的容器,双循环暴力法,JavaScript,详细注释

Lee Chen

大前端 LeetCode

关于自增id 你可能还不知道

Simon

MySQL MySQL自增ID

Spring-技术专题-Bean的生命周期简介

码界西柚

spring

MySQL视图介绍

Simon

MySQL

通过波士顿矩阵模型做产品定位

GuOjixIE

数据分析 产品定位 波士顿矩阵模型

[8.20]leetcode每日一题,

一起搞稽

算法 DFS

史上最强DIY,手工制作一只会说话的机器狗

华为云开发者联盟

聊天机器人 nlp 华为云 语言识别 语言合成

5. JsonFactory工厂而已,还蛮有料,这是我没想到的

YourBatman

Jackson Fastjson JSON库 JsonFactory

一行错误代码:5 亿美元没了。。。项目关闭。。。

程序员生活志

如何选择一台打印机

别把虾米不当海鲜

更改用户host留下的坑

Simon

MySQL

MySQL-长事务详解

Simon

MySQL mysql事务

LLVM 3.3完全兼容C++11_语言 & 开发_Jeff Martin_InfoQ精选文章