写点什么

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

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

关注

评论

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

2万字长文带你细细盘点五种负载均衡策略。

why技术

Java 负载均衡 源码分析 面试 dubbo

[ARTS打卡] week 01

Mau

ARTS 打卡计划

Java日志门面系统

泛泛之辈

Java 日志 slf4j

Mysql索引不会怎么办?6000字长文教会你

Super~琪琪

MySQL 数据库 sql 索引

ARTS week 3

刘昱

如何做好Code Review?

架构精进之路

Code Review

区块链技术大显身手,仅用20分钟就打完一场官司!

CECBC

CECBC 区块链技术 数字版权 存证

体验一次简洁的代码

你当像鸟飞往你的山

爬虫框架Scrapy应用实践-淘宝保险频道数据抓取【2】-抓包分析

hadesxiong

Python 爬虫 保险 Scrapy

ARTS-01

NIMO

ARTS 打卡计划 ARTS活动

那些会阻碍程序员成长的细节[2]

MavenTalker

程序员 程序人生

关爱孩子的心理建设

Neco.W

人生 感悟 教育

后疫情时代,区块链的发展迎来曙光!

CECBC

CECBC 区块链技术

如何设置线程池参数?美团给出了一个让面试官虎躯一震的回答。

why技术

Java 源码分析 面试 线程池

深入计算机底层,从几本靠谱的书开始

HackMSF

计算机工作原理

ARTS-1

你当像鸟飞往你的山

ARTS 打卡计划

我的编程之路 -6(新时代)

顿晓

android 编程之路 时代

5G时代下应用的安全防御研究

Nick

5G 5G网络安全 5G安全

眼中有码,心中无码

小眼睛聊技术

学习 深度思考 程序员 最佳实践 算法

ARTS 打卡 WEEK2

编程之心

ARTS 打卡计划

MySQL 可重复读,差点就我背上了一个 P0 事故!

楼下小黑哥

Java MySQL

DDD 中的那些模式 — 使用 Specification 管理业务规则

Joshua

设计模式 领域驱动设计 DDD 架构模式

如何使用 Apache CXF 快速实现一个 WebService

Rayjun

Java WebService CXF

clang-format 使用与集成介绍

Geek_101627

ARTS打卡第一周

GKNick

数据产品经理实战-数据门户搭建(上)

第519区

数据中台 开发数据

Apache DolphinScheduler新特性与Roadmap路线

代立冬

大数据 数据中台 工作流调度 海豚调度 数据湖调度

ARTS打卡计划_第一周

叫不醒装睡的人

ARTS 打卡计划

重学 Java 设计模式:实战单例模式

小傅哥

设计模式 编程思维 重构 优化代码

像孩子一样认识新事物 —— 读《终身幼儿园》

YoungZY

学习 读书笔记 读书

Flutter开发环境配置

玉龙BB

flutter android vscode

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