IBM XL C/C++ Compilers
XL C/C++ is the name of IBM's proprietary optimizing C/C++ compilers for IBM-supported environments.
Developer(s) | IBM |
---|---|
Stable release | 17.1 (AIX on Power)
/ December 2018 (Linux on Power) |
Operating system | Cross-platform: Linux (POWER and z architectures), AIX, Blue Gene/Q, z/OS, and z/VM |
Available in | Multilingual |
Type | Software development |
License | Proprietary |
Website | www |
Compiler
The IBM XL compilers are built from modularized components consisting of front ends (for different programming languages), a platform-agnostic high-level optimizer, and platform-specific low-level optimizers/code generators to target specific hardware and operating systems. The XL C/C++ compilers target POWER, BlueGene/Q, and IBM Z hardware architectures.
Optimization
A common high level optimizer across the POWER and z/OS XL C/C++[1] compilers optimizes the source program using platform-agnostic optimizations such as interprocedural analysis, profile-directed feedback, and loop and vector optimizations.
A low-level optimizer on each platform performs function-level optimizations and generates optimized code for a specific operating system and hardware platforms.
The particular optimizations performed for any given compilation depend upon the optimization level chosen under option control (O2 to O5) along with any other optimization-related options, such as those for interprocedural analysis or loop optimizations.
IBM i
The XL compiler on IBM i series for C/C++, is called ixlc. It is a qsh CLI based on the same assets than the CRTCPPMOD / CRTPGM system commands. Is is compatible with C++98, and partially with C++11. Is was discontinued in 2011.
IBM AIX
A 60-day installable evaluation version is available for download for XL C/C++ for AIX.[2] In June 2016, IBM introduced XL C/C++ for Linux Community Edition, which is a no-charge and fully functional edition for unlimited production use.[3]
The XL compilers on AIX have delivered leadership scores in the SPEC CPU2000 and CPU2006 benchmarks, in combination with specific IBM POWER system processor announcements, for example, SPEC CPU2006 Floating Point[4] score of 71.5 in May 2010 and [5] score of 4051 in August 2006.
Current versions of XL C/C++ for AIX (16.1) and XL C/C++ for Linux (16.1.1), are based on open-source Clang front end (part of the Clang/LLVM open source project). They provide support for C11, C++03, C++11, and C++14.
A new monthly pricing option is offered in XL C/C++ for AIX 16.1 and XL Fortran for AIX 16.1 to provide more flexibility for cloud-based use cases. This pricing model is on a term or subscription basis, with Software Subscription and Support included.
With the launch of IBM Power10, the IBM XL C/C++ for AIX compiler has been modernized and re-branded to IBM Open XL C/C++ for AIX. IBM Open XL C/C++ for AIX 17.1.0 combines Clang/LLVM technology with IBM's industry-leading optimizations, which provides the following improved capabilities:
- Greater application performance
- Enhanced language standard support
- Enhanced GCC compatibilities
- Faster build speed
IBM Open XL compilers offer monthly licenses (per Virtual Processor Core) to facilitate the journey to the hybrid cloud. Meanwhile, user-based licenses (i.e. Authorized user and Concurrent user licenses) are still available.
IBM Z
The z/OS XL C/C++ compiler exploits the IBM Z® systems. It enables the development of high-performing business applications and system programs on z/OS while maximizing hardware use and improving application performance. IBM z/OS XL C/C++ uses services provided by the z/OS Language Environment® and Runtime Library Extensions base elements. It supports embedded CICS® and SQL statements in the C/C++ source, which simplifies the operation of C/C++ within CICS and Db2® environments. It works in concert with the IBM Application Delivery Foundation for z/OS.
IBM® Open XL C/C++ 1.1 for z/OS® is the newest C/C++ compiler on z/OS that is fully based on the open source LLVM infrastructure. Open XL C/C++ 1.1 supports up to C17/C18 and C++17 language standard features and leverages the features of the IBM z16™ mainframe, ideal for z/OS UNIX System Services users porting applications from distributed platforms. Open XL C/C++ 1.1 is available as a no-charge add-on feature for users who have enabled the z/OS XL C/C++ (an optionally priced feature) on z/OS 2.4 or z/OS 2.5.
Products
The XL C/C++ compiler family consists of the following products, with most recent version and release dates where known:
- XL C/C++ for AIX (Version 16.1, December 2018)
- XL C for AIX (Version 13.1.3, December 2015)
- XL C/C++ for Linux on Power for little-endian distributions (Version 16.1.1, November 2018)
- XL C/C++ for Linux on Power for big-endian distributions (Version 13.1, June 2014)
- XL C/C++ 2.4.1 for z/OS 2.4 (Dec 2019)
- z/OS XL C/C++ (Version 2.4, Sep 2019)
- z/OS XL C/C++ (Version 2.3, September 2017)
- z/OS XL C/C++ (Version 2.2, September 2015)
- XL C/C++ for z/VM (Version 1.3, December 2011)
- XL C/C++ for Linux on z Systems (Version 1.1, January 2015)
- XL C/C++ for Blue Gene/Q (Version 12.1, June 2012)
- XL C/C++ Advanced Edition for Blue Gene (Version 9.0, September 2007, withdrawn August 2009)
The Open XL C/C++ compiler family consists of the following products, with the most recent version and release dates where known:
- Open XL C/C++ for z/OS (Version 1.1, May 2022)
- Open XL C/C++ for AIX (Version 17.1.0, Sep 2021)
See also
- IBM VisualAge – the predecessor product
- List of compilers
References
External links
- Product documentation: Open XL C/C++ for AIX 17.1.0
- Product documentation: XL C/C++ for Linux 16.1.1
- Product documentation: XL C/C++ for AIX 16.1
- Product documentation: XL C for AIX 13.1.3
- Product documentation: Open XL C/C++ for z/OS 1.1
- Product documentation: z/OS XL C/C++ 2.4
- Product page: z/OS XL C/C++
- Community: IBM C/C++ and Fortran compilers on Power® community
- Community: IBM C/C++ compilers for IBM Z