本节提供了一个汇总列表,介绍了 Oracle Solaris Studio 12.4 C++ 5.13 编译器发行版中的新增特性和功能以及已修改的特性和功能。
用于 x86 上的 Intel Ivy Bridge 处理器的新的 -xarch、-xchip 和 -xtarget 值。
用于 SPARC T5、M5、M6 和 M10+ 处理器的新的 -xarch、-xchip 和 -xtarget 值。
支持 Ivy Bridge 汇编程序指令。
支持 Ivy Bridge 内部函数,可在 solstudio-install-dir/lib/compilers/include/cc/immintrin.h 中找到这些函数。
-xarch=generic 的缺省值针对 x86 上的 -m32 设置为 sse2。
支持 x86 上的 -xlinkopt。对适用于现代 Intel 处理器的大型企业应用程序进行的模块间、过程间代码排序优化。大型应用程序中的完全优化的二进制代码使性能提升了 5%。
增强的 -xs 选项,用于在可执行文件大小与为了调试而保留对象文件的需求之间进行权衡。
支持 Linux 上的 -xanalyze 和 -xannotate。
支持 -fopenmp 与 -xopenmp=parallel 等效。
支持所有平台上的 -compat=g。
支持 x86 上的 -xregs。
-errtags 的行为现在和 C 编译器一样,但仅针对警告消息显示标记。在前面的 C++ 编译器中,-errtags 选项导致在警告和错误消息中打印一个标记。
-template 的缺省值已从 -template=extdef 更改为 -template=no%extdef。有关更多信息,请参见Chapter 5, 项目组织和Chapter 6, 创建和使用模板。
包含 -xoption 等效项的以下选项已废弃:
–help
–inline
–libmieee
–libmil
–nolib
–nolibmil
–pg
–time
–unroll
应改用 –xhelp、–xinline、–xlibmieee 等。
新编译器选项:
-features=[no%]rtti,禁用运行时类型标识 (RTTI)
-fma,启用自动生成浮点混合乘加指令。
(x86) -preserve_argvalues,在堆栈中保存基于寄存器的函数参数的副本。
-std,支持在 C++ 03 或包含 g++ 二进制兼容性的 C++ 11 变种之间进行选择。使用 -std=c++11 时,以下限制适用:
通用字符名(转义的 Unicode 字符)当前不受支持。
以 .h 结尾的非标准 iostream 头文件(如 <iostream.h>、<fstream.h> 等)不可用。这些头文件用于简化从旧式 C++ 转换到 C++98 的过程。
有关更多信息,请参见-std=v。
-xdebuginfo,控制发出多少调试和监测信息。
-xglobalize,控制文件静态变量的全局化,但是不控制函数的全局化。
-xinline_param,可用于更改编译器用来确定何时内联函数调用的试探式方法。
-xinline_report,在编译器内联函数时生成报告并写入标准输出。
-xipo_build,通过避免在初始传递期间通过编译器进行优化(仅在链接时优化)而缩短编译时间。
-xkeep_unref,保留未引用函数和变量的定义。
-xpatchpadding,在各函数启动之前保留内存区域。
-xprevise,生成能使用代码分析器查看的源代码静态分析。
(Oracle Solaris) -xsegment_align,使驱动程序在链接行上包括特殊映射文件。
-xthroughput,指示当多个进程同时在系统上运行时运行应用程序。
-xunboundsym,指定程序是否包含对动态绑定符号的引用。