写点什么

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:542417
用户头像
臧秀涛 略懂技术的运营同学。

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

关注

评论

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

夯实信任基础 区块链正在成为价值互联网的新代言

CECBC

区块链新基建时代 看欧科云链如何助力数字经济产业升级

CECBC

数字经济

打破固有思维(九)

Changing Lin

Serverless:这真的是未来吗?(一)

Serverless Devs

运维 云原生 服务器 #Serverless

ELK协议栈基本介绍

五分钟学大数据

大数据 5月日更

如何从Docker镜像提取Dockerfile?

运维研习社

Docker Dockerfile 5月日更

Kubernetes入门——Kubernetes日志采集与监控告警

百度开发者中心

百度 Kubernetes 云原生 kubernetes入门 技术课程

解读SSDB、LevelDB和RocksDB到GaussDB(for Redis)的迁移

华为云开发者联盟

数据仓库 华为云 数据迁移 GaussDB(for Redis) PB级数据库

深入浅出,Andorid 端屏幕采集技术实践

拍乐云Pano

android 音视频

iOS 面试策略之系统框架-UIKit

iOSer

ios 面试 语言 & 开发 系统框架

Spark RDD详解

大数据技术指南

大数据 spark 5月日更

CRUD程序员勿进!全身心投入才能读懂腾讯大佬亲码的“Java微服务”学习笔记

Java架构师迁哥

Flutter Tab

Geek_7e907c

情场失意的我,幸获师兄捞了一把,助我拿到6个大厂offer,Java岗

Java架构师迁哥

cornerstone 基础概念篇(一)

Lazy

cornerstone 脑科学 脑科学软件工程 脑影像

☕【Java技术之旅】走进线程池的世界(基础篇)

码界西柚

Java 线程 线程池 线程池工作原理 5月日更

据说学会这款数据分析工具,会被各大名企高薪哄抢!

博文视点Broadview

带你彻底搞懂高性能网络模式Reactor 和 Proactor

华为云开发者联盟

reactor Proactor 网络编程模式

如何防止抄袭PCB电路板

不脱发的程序猿

嵌入式 如何防止抄袭PCB电路板 PCB电路板 硬件开发

python变量、运算符

若尘

变量 运算符 Python编程 5月日更

区块链创新包含基础技术和应用场景两个层面

CECBC

个人/团队/企业/组织申请计算机软件著作权的流程

不脱发的程序猿

程序人生 专利 软著申请 计算机软件著作

WAVE SUMMIT 2021 深度学习开发者峰会定档5月20日

百度大脑

深度学习 飞桨

canvas从零到一,实际案例

Vue 海报 js ts canvas

css与less,sass的奇妙之旅

less SASS

Windows后渗透之权限维持

Thrash

区块链技术如何助力构建新能源系统

CECBC

智能家居商业模式:To C向左,To B向右

不脱发的程序猿

IoT 智能家居 智能家居商业模式

数据中心太耗电,送你一个节能神器

华为云开发者联盟

数据中心 节能 电费 NAIE 制冷

最强阿里巴巴历年经典面试题汇总:C++研发岗

linux大本营

c++ Linux epoll 服务器开发

【LeetCode】整数转罗马数字Java题解

Albert

算法 LeetCode 5月日更

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