This section provides a summary list of the new features and changed functionality introduced in the Oracle Solaris Studio 12.4 C++ 5.13 Compiler release.
New -xarch, -xchip, and -xtarget values for Intel Ivy Bridge processor on x86.
New -xarch, -xchip, and -xtarget values for SPARC T5, M5, M6, and M10+ processors.
Support for Ivy Bridge assembler instructions.
Support for Ivy Bridge intrinsic functions, which can be found in solstudio-install-dir/lib/compilers/include/cc/immintrin.h.
Default value for -xarch=generic set to sse2 for -m32 on x86.
Support for -xlinkopt on x86. Inter-module, inter-procedural code ordering optimizations for large enterprise applications tuned for modern Intel processors. An up to 5% performance boost over a fully optimized binary can be seen for large applications.
Enhanced -xs option to control the trade-off of executable size versus the need to retain object files in order to debug.
Support for -xanalyze and -xannotate on Linux.
Support for -fopenmp as a synonym for -xopenmp=parallel.
Support for -compat=g on all platforms.
Support for -xregs on x86.
Behavior for -errtags is now the same as for the C compiler, emitting tags only for warning messages. In previous C++ compilers, the -errtags option caused a tag to be printed as part of the message for both warnings and errors
Default value for -template has changed from -template=extdef to -template=no%extdef. See Chapter 5, Program Organization and Chapter 6, Creating and Using Templates for more information.
The following options that have -xoption equivalents are now deprecated:
–help
–inline
–libmieee
–libmil
–nolib
–nolibmil
–pg
–time
–unroll
Instead you should use –xhelp, –xinline, –xlibmieee and so on.
New compiler options:
-features=[no%]rtti disables runtime type identification (RTTI)
-fma enables automatic generation of floating-point fused multiply-add instructions.
(x86) -preserve_argvalues saves copies of register-based function arguments in the stack.
-std enables selection of either C++ 03 or C++ 11 dialect with g++ binary compatibility. When using -std=c++11, the following limitations apply:
Universal Character Names (escaped Unicode characters) are not currently supported.
The non-standard iostream headers ending in .h, such as <iostream.h>, <fstream.h>, etc., are not available. These headers were intended to ease the transition from old-style C++ to C++98.
See -std=v for more information.
-xdebuginfo controls how much debugging and observability information is emitted.
-xglobalize controls globalization of file static variables but not functions.
-xinline_param allows for changing the heuristics used by the compiler for deciding when to inline a function call.
-xinline_report generates a report written to standard output on the inlining of functions by the compiler.
-xipo_build reduces compile time by avoiding optimizations during the initial pass through the compiler, optimizing only at link time.
-xkeep_unref keeps definitions of unreferenced functions and variables.
-xpatchpadding reserves an area of memory before the start of each function.
-xprevise produces a static analysis of the source code that can be viewed using the Code Analyzer.
(Oracle Solaris) -xsegment_align causes the driver to include a special mapfile on the link line.
-xthroughput indicates that the application will be run in situations where many processes are simultaneously running on the system.
-xunboundsym specifies whether the program contains references to dynamically bound symbols.