博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GCC 8.1支持C++2a的部分特性
阅读量:5943 次
发布时间:2019-06-19

本文共 957 字,大约阅读时间需要 3 分钟。

\

看新闻很累?看技术新闻更累?试试,每天上下班路上听新闻,有趣还有料!

\
\\

GCC 8.1是GNU编译器集的最新主版本,该版本对即将到来的C++2a标准的某些部分提供了实验性支持。此外,GCC 8.1改进了性能分析驱动的优化,并把Go支持提升到了1.10.1版本。

\\

虽然对于即将到来的C++草案,有关工作尚处于起步阶段,但GCC C++前台提供了两个新标识-std=c++2a-std=gnu++2a,以便启用已经预先批准的部分C++新特性,其中包括、、、、等等。要了解GCC 8中的全部C++2a特性,请查阅。

\\

此外,C++的前台输出现在改进了诊断信息,包括改进了位置和位置范围,并提供了若干新的故障排除线索。例如,在以下情况下,编译器现在可以提供一个线索,如在定义之前使用宏,试图访问类或结构的私有字段,当旧式的转换可以用static_castconst_castreinterpret_cast替代。

\\

GCC 8.1显著改善了。这些优化使用对被检测代码的性能分析结果决定优化哪一部分代码。例如,GCC现在默认会把面向x86的函数分成热区和冷区。热函数的优化力度更大,GCC会把它们放在同一个区域里,增强局部性。同样,GCC现在能够从一个有效运行的程序中检测不执行的代码,比如,它在某一时刻触发了未定义的行为。

\\

谈到优化,该版本还新增了循环优化,如-floop-unroll-and-jam执行外部循环展开和内部循环融合,-floop-interchange执行嵌套循环中的循环互换,增强数据局部性。一些已有的优化器也经过了改进,包括-floop-nest-optimize-ftree-loop-distribution。所有优化器都是使用-O3标识默认启用的。

\\

前面已经提到,Go支持经过了改进,这得益于的完整实现,这是Go最新的官方版本。此外,其垃圾收集器现在是完全并发的了。

\\

最后需要注意的一点是, GCC 8.1还引入了Armv8.4-A架构支持,可以通过-march=armv8.4-a选项启用,支持现在是作为Armv8.2-A架构及更高版本的可选扩展。

\\

GCC 8.1还包含许多更有趣的变化,要了解全部细节,请查看。

\\

查看英文原文

转载地址:http://vfzxx.baihongyu.com/

你可能感兴趣的文章
jquery 怎么触发select的change事件
查看>>
angularjs指令(二)
查看>>
(原創) 如何建立一个thread? (OS) (Linux) (C/C++) (C)
查看>>
<气场>读书笔记
查看>>
领域驱动设计,构建简单的新闻系统,20分钟够吗?
查看>>
web安全问题分析与防御总结
查看>>
React 组件通信之 React context
查看>>
ZooKeeper 可视化监控 zkui
查看>>
Linux下通过配置Crontab实现进程守护
查看>>
ios 打包上传Appstore 时报的错误 90101 90149
查看>>
Oracle推出轻量级Java微服务框架Helidon
查看>>
密码概述
查看>>
autoconf,automake,libtool
查看>>
jQuery的技巧01
查看>>
基于泛型实现的ibatis通用分页查询
查看>>
gopacket 使用
查看>>
AlertDialog对话框
查看>>
我的友情链接
查看>>
linux安全---cacti+ntop监控
查看>>
鸟哥的linux私房菜-shell简单学习-1
查看>>