The z/OS V2.2 XL C/C++ compiler will become generally available on September 30, 2015 as an optionally priced feature of z/OS V2.2.
This release of the compiler provides support for the new IBM z13 Mainframe, with ARCH(11) and TUNE(11) parameters designed to take advantage of the new instructions to better optimize your generated code. The compiler also supports the single instruction, multiple data (SIMD) instructions provided with the z13 vector extension facility and corresponding vector programming language extensions, and the IBM MASS (Mathematical Acceleration Subsystem) and ATLAS (Automatically Tuned Linear Algebra Software) libraries. The MASS library is intended for accelerated execution of elementary mathematical functions that serves as a higher-performance alternative to the standard math library that is part of the z/OS XL C/C++ runtime. The ATLAS library is designed to provide linear algebra function support for BLAS (Basic Linear Algebra Subprograms) and LAPACK (Linear Algebra PACKage) functions routinely used in Business Analytics and Optimization solutions. These two libraries provide a powerful framework for development of new Business Analytics workloads, porting math-intensive workloads from other platforms, and can help accelerate Business Analytics workloads on zEC12, zBC12, and z13 processors. z/OS V2.2 dbx also provides support for debugging C/C++ programs on z/OS UNIX that use vector variables and the SIMD instructions.
Additionally, z/OS V2.2 XL C/C++ delivers a number of usability and performance enhancements:
- Inline assembler statements support is designed to enable you to insert assembler statements inlined with XL C and XL C++ code. This support is designed to not require Metal C compilation and to enable you to easily use specialized instructions with your C and C++ objects.
- Runtime architecture blocks are designed to enable you to use a single source file with sections designed to take advantage of various hardware architecture levels and specify that the system select the appropriate path to be run at execution time. This function is designed to enable a single executable to have optimized paths for various hardware levels to help deliver improved performance.
The functions above are available for z/OS V2.1 XL C/C++ with a web deliverable added to the z/OS download site.
In addition, z/OS V2.2 XL C/C++ includes:
- Automatic conversion of code, designed to take advantage of the vector facility, to enable more efficient use of the hardware, and to parallelize code for better performing applications.
- Support in the dbgld utility, which is now designed to capture all source and place it in the module level debugging file, allowing you to view or use the non-executable code.
- An enhanced Metal C design to allow larger reserved DSA fields if requested, which is intended to allow for easier migration from nonstandard linkages and intended to provide more flexibility.
Also, z/OS V2R2 XL C/C++ compiler delivers up to 24% throughput improvement on z13 compared to z/OS V2R1 XL C/C++ compiler on zEC12. This significant improvement in throughput is achieved through more powerful hardware and improved compiler optimization. The performance improvements are based on internal IBM lab measurements. Performance results for specific applications will vary, depending on the source code, the compiler options specified, and other factors.
Further information can be found on the 2.2 tab of the z/OS XL C/C++ documentation library.