Z software Z developer tools XL C/C++ for z/VM IBM XL C/C++ for z/VM
An advanced optimizing compiler for the z/VM® platform
Illustration of abstract geometric chevron

IBM® XL C/C++ for z/VM® is an optimizing compiler designed for developing large, complex, computationally intensive applications. It lets you write C and C++ applications that are optimized for IBM Z® systems hardware.

IBM XL C/C++ for z/VM is the language-centered C/C++ application development environment on the z/VM platform. It is a z/VM-enabled version of z/OS® XL C/C++, which includes a C/C++ compiler component (referred to as the XL C/C++ compiler) and some C/C++ application development utilities.

XL C/C++ for z/VM 1.3 user and implementation guides

Benefits Optimize application performance

Supports high-order transformations, which are optimizations that improve performance for loops; supports OPTIMIZE(3) or OPT(3), the compiler's highest and most aggressive level of optimization.

Migrate applications easily

Conforms to the ISO/IEC 9899:1999 international standard (C99), the ANSI/ISO 1998 C++ standard and a standards-conforming C compiler, and includes the C++ Standard Library.

Simplify porting of applications

Supports industry standards to simplify the porting of applications to z/VM from both IBM and non-IBM platforms.

Features
Extensive optimizations

Support for OPT(3) introduces additional options and pragmas to help you improve your application performance, including the loop unrolling option and pragmas and several new built-in functions. Using the OPT(0), OPT(2) and OPT(3) options, you can obtain optimization levels that run from comprehensive low-level optimizations to more extensive optimizations.


C++ standard library

IBM XL C/C++ for z/VM® includes the C++ Standard I/O Stream Library for performing input and output (I/O) operations, the C++ Standard Complex Mathematics Library for manipulating complex numbers and the Standard Template Library (STL), which is composed of C++ template-based algorithms, container classes, iterators, localization object and the string class.


Unicode literal support

IBM XL C/C++ for z/VM adds support for the char16_t and char32_t types through typedefs in C and as native types in C++, making it easier to port code that uses these types to z/OS®.


Compatibility with the GNU Compiler Collection (GCC)

The included C support for the statement expression construct enables programmers to use loops, switches and local variables within an expression. C and C++ support the zero-extent array construct as a header for a variable-length object. These features make it easier to port C/C++ code using these constructs on other platforms to XL C/C++ for z/VM®.


Deeper pointer analysis

The RESTRICT option indicates to the compiler that parameter pointers in all functions or specified functions are disjoint. The compiler performs more in-depth pointer analysis when the RESTRICT option is active. This is intended to improve the performance of the application being compiled.


Saved option string feature

IBM XL C/C++ for z/VM provides a compact representation of compiler options used for each source file and creates the saved options string in the executable file for each compilation unit. The compiler records version information for all components active during the compilation. This new feature can help you in diagnosing run-time problems.


Message severity modification support

The severity option allows changing the severity of some of the diagnostic messages emitted by the compiler. This feature allows customization of certain diagnostic message levels to the coding standards of the user.


Debug support

Source listings generated by the compiler are enhanced to add the starting offset of each function to the listings. The starting offset of each function is expected to be helpful for debugging purposes. For compiled code using optimization level O2 or O3, the names and addresses of functions and the names, types and values of the parameters can be displayed when you debug optimized code.

Resources IBM z/VM Language Environment

Get an overview of the language environment on z/VM.

Additional features of IBM XL C/C++ for z/VM

Explore additional features of IBM XL C/C++ for z/VM with technical descriptions.

Differences between XL C/C++ for z/VM and z/OS XL C/C++

Learn about the z/OS XL C/C++ compiler features that are not supported or operate differently in XL C/C++ for z/VM.

Related products IBM z/OS IBM z/OS XL C/C++

Exploits the latest z/Architecture®, including the latest IBM z15™ servers.

IBM XL C/C++ for Linux

A high-performance compiler for developing complex C/C++ programs.

Discover the IBM C and C++ Compiler Family
Next steps

Explore IBM XL C/C++ for z/VM. Schedule a no-cost 30-minute meeting with an IBM Z representative.

More ways to explore Documentation Support IBM Redbooks® Support and services Global financing Flexible pricing Education and training Community Developer community Business Partners Resources