AICon日程100%就绪,9折倒计时最后一周 了解详情
写点什么

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

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

关注

评论

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

Quick BI的可视分析之路

瓴羊企业智能服务

阿里云 数据中台 数据分析 数据可视化 商业分析

最强大的内在激励:自我承诺

石云升

激励 职场经验 管理经验 6月日更

腾讯同事内推的那位Linux C/C++后端开发同学面试没过......

Linux服务器开发

Linux C/C++ Linux服务器开发 Linux后台开发 Linux网络编程

4面字节跳动拿到Offer,灵魂拷问

欢喜学安卓

android 程序员 面试 移动开发

4个改变你编程技能的小技巧,建议细读

欢喜学安卓

android 程序员 面试 移动开发

Flutter&Dart Callback转同步

小呆呆666

flutter ios android 大前端

构建WEB项目的 25 个HTML建议

devpoint

html 6月日更

为什么vacuum后表还是继续膨胀?

华为云开发者联盟

索引 GaussDB 元组 VACUUM 行存表

不愧是Alibaba技术官,Kafka的精髓全写这本“限量笔记”里,服了

Java 架构 面试 分布式

CloudQuery 使用教程之《No.1 基础入门》

BinTools图尔兹

数据库 程序员 dba 国产数据库 运维开发

EBean ORM 框架介绍-3.实体草稿功能

Barry的异想世界

jpa ORM Ebean

自定义 View 功能上线,你的小程序可以更多变

蚂蚁集团移动开发平台 mPaaS

小程序 mPaaS 自定义控件

RS485通信如何设计EMC电路?

不脱发的程序猿

电路设计 通信总线 RS485 EMC设计 通信抗干扰

Rust从0到1-自动化测试-如何编写测试

rust 自动化测试 如何编写测试 Automated Tests

高性能计算对生命科学研究有何帮助?

北鲲云

云计算 高性能计算 生命科学 虚拟筛选

一觉醒来,发现自建的数据库被勒索了,好可怕…

华为云数据库小助手

数据库 高可用 安全性 DAS

“区块链指导意见”重磅发布 场景化应用昭示新蓝海

旺链科技

区块链应用 区块链供应链金融落地

Python接口自动化之常见用例读取方法介绍

行者AI

测试 #python

windows11泄露版尝鲜体验新功能!!!

学神来啦

win10 win11 windows10 windows 11

一进商场就迷路?ThingJS用室内导航拯救路痴!

ThingJS数字孪生引擎

程序员 大前端 可视化 3D可视化 数字孪生

马士兵强推面试前必刷:Alibaba内部Java高级架构师380道面试题

Java架构追梦

Java 阿里巴巴 面试 java架构

用node写个简单的脚手架!

Node cli

限量!Alibaba首发“Java成长笔记”,差距不止一点点

Java 编程 程序员 架构 面试

网络攻防学习笔记 Day54

穿过生命散发芬芳

网络攻防 6月日更

测试开发之网络篇-IP地址

禅道项目管理

IP 协议 IP地址

nodejs学习记录

Node

去中心化的互联网,区块链域名如何对抗在线审查

CECBC

从五大结构体,带你掌握鸿蒙轻内核动态内存Dynamic Memory

华为云开发者联盟

鸿蒙 内存管理 结构体 动态内存 Dynamic Memory

企业想要升级生产管理系统,有哪些好用的低代码平台推荐?

优秀

低代码

如何设计好一个接口

🎄新

架构 设计 接口

从网络平台到城市平台——城市数字化的另类思考

CECBC

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