写点什么

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

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

关注

评论

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

Linux开发_介绍BMP图片上下翻转、添加水印

DS小龙哥

6月月更

【sql语句基础】——查(select)(单表查询顺序补充)

写代码两年半

数据库 sql MySQL 数据库 6月月更

关于 SAP Spartacus CmsService.getComponentData 可能的优化思路

汪子熙

前端开发 SAP Hybris commerce 6月月更

深入剖析 | 应用层Protocol的标准设计

九叔(高翔龙)

架构 协议 TCP/IP dubbo源码 粘包/拆包

C#入门系列(十三) -- 初识结构体

陈言必行

C# 6月月更

【Python技能树共建】selenium入手篇

梦想橡皮擦

Python 6月月更

龙蜥社区 5 月技术委员会会议顺利召开,新一代操作系统研发路线图发布

OpenAnolis小助手

开源 操作系统 龙蜥社区 技术委员会 新版本

『Three.js』场景 Scene

德育处主任

canvas three.js 6月月更

C#/VB.NET 在Word转PDF时生成目录书签

在下毛毛雨

C# .net PDF word文档 书签

实战 | Win10安装ELK

写程序的小王叔叔

ELK ELK Stack 6月月更

实战模拟│企业微信机器人实时报错预警

机器人 企业微信 监控告警 预警 6月月更

中国SaaS产业全景图谱

小炮

区块链哈希竞猜游戏系统开发(开发方案)

开发微hkkf5566

17张图:读懂国内首个《主机安全能力建设指南》

青藤云安全

网络安全 主机安全 深度网络

OpenHarmony 开源开发者成长计划解决方案学生挑战赛,等你来参加!

InfoQ写作社区官方

OpenHarmony 热门活动

实战 |SpringBoot增加Swagger

写程序的小王叔叔

架构 springboot swagger 6月月更

一起架构-某实时分析项目云原生 serverless 架构的设计思路和poc代码实现

明哥的IT随笔

云原生 架构设计

Springboot 升级到 2.6.1 的坑

Damon

微服务 微服务架构 Spring Cloud 6月月更

等个有“源”人|OpenHarmony 成长计划学生挑战赛报名启动

OpenHarmony开发者

OpenHarmony

实战 | 巴啦巴啦SpringBoot变装SpringCloud大佬~

写程序的小王叔叔

架构 微服务 Spring Cloud springboot 6月月更

5月月更开奖!还不来领取?

InfoQ写作社区官方

热门活动 5月月更

Django 项目 MVT 结构

海拥(haiyong.site)

6月月更

大数据培训算法面试题分享

@零度

算法 大数据开发

vivo大规模 Kubernetes 集群自动化运维实践

vivo互联网技术

Kubernetes operator ansible kubeadm Kubevirt

JavaScrip模块模式

大熊G

JavaScript 前端 6月月更

web前端培训50 个高效编程的前端轮子

@零度

前端开发

5个聚合导航网站,资源、工具、素材应有尽有

小炮

InfoQ 极客传媒 15 周年庆征文|ZooKeeper进阶(一):Zookeeper简介

No Silver Bullet

zookeeper 运维 6月月更 InfoQ极客传媒15周年庆

转:基于Springcloud的服务治理落地实践

小江

Spring Cloud 微服务治理

设计师导航网站合集

小炮

什么是Minio?如何搭建Minio集群?

wljslmz

存储 Minio 集群 6月月更

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