Oracle® Solaris Studio 12.4: C++ User's Guide

Exit Print View

Updated: March 2015
 
 

1.1 New Features and Functionality of the Oracle Solaris Studio 12.4 C++ 5.13 Compiler

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.