This article has multiple issues. Please help improve it or discuss these issues on the talk page . (Learn how and when to remove these template messages)
|
Developer(s) | IBM |
---|---|
Stable release | 17.1.1 (AIX on Power, Linux on Power), 1.1 (z/OS) / September 2022 (Linux on Power), November 2022 (AIX on Power), May 2022 (z/OS) |
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 |
XL C/C++ is the name of IBM's proprietary optimizing C/C++ compilers for IBM-supported environments.
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.
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.
The XL compilers on AIX have delivered, for example, SPEC CPU2006 Floating Point score of 71.5 in May 2010 [2] and score of 4051 in August 2006. [3]
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. It is compatible with C++98, and partially with C++11. It was discontinued in 2011.
Current versions of XL C/C++ for AIX on Power (17.1.1) and XL C/C++ for Linux on Power (17.1.1), [4] are based on open-source Clang front end (part of the Clang/LLVM open source project). In particular, XL C/C++ for AIX 17.1.0 is based on LLVM Clang 13. [5] Both compilers provide support for C11, C++03, C++11, and C++14. Note that while XL C/C++ for Linux on Power supports at least C++17, [4] some library features later than C++14 may be unavailable under XL C/C++ for AIX on Power. [6]
A 60-day installable evaluation version is available for download for XL C/C++ for AIX. [7] 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. [8]
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.
IBM Open XL compilers offer monthly licenses (per Virtual Processor Core); meanwhile, user-based licenses (i.e. Authorized user and Concurrent user licenses) are still available.
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.
XL C/C++ and Open XL C/C++ compiler families consist of the following products, with most recent version and release dates where known:
AIX is a series of proprietary Unix operating systems developed and sold by IBM for several of its computer platforms.
z/OS is a 64-bit operating system for IBM z/Architecture mainframes, introduced by IBM in October 2000. It derives from and is the successor to OS/390, which in turn was preceded by a string of MVS versions. Like OS/390, z/OS combines a number of formerly separate, related products, some of which are still optional. z/OS has the attributes of modern operating systems but also retains much of the older functionality that originated in the 1960s and is still in regular use—z/OS is designed for backward compatibility.
Single instruction, multiple data (SIMD) is a type of parallel processing in Flynn's taxonomy. SIMD can be internal and it can be directly accessible through an instruction set architecture (ISA), but it should not be confused with an ISA. SIMD describes computers with multiple processing elements that perform the same operation on multiple data points simultaneously.
IBM i is an operating system developed by IBM for IBM Power Systems. It was originally released in 1988 as OS/400, as the sole operating system of the IBM AS/400 line of systems. It was renamed to i5/OS in 2004, before being renamed a second time to IBM i in 2008. It is an evolution of the System/38 CPF operating system, with compatibility layers for System/36 SSP and AIX applications. It inherits a number of distinctive features from the System/38 platform, including the Machine Interface which provides hardware independence, the implementation of object-based addressing on top of a single-level store, and the tight integration of a relational database into the operating system.
Xcode is Apple's integrated development environment (IDE) for macOS, used to develop software for macOS, iOS, iPadOS, watchOS, tvOS, and visionOS. It was initially released in late 2003; the latest stable release is version 15, released on September 18, 2023, and is available free of charge via the Mac App Store and the Apple Developer website. Registered developers can also download preview releases and prior versions of the suite through the Apple Developer website. Xcode includes command-line tools that enable UNIX-style development via the Terminal app in macOS. They can also be downloaded and installed without the GUI.
OpenMP is an application programming interface (API) that supports multi-platform shared-memory multiprocessing programming in C, C++, and Fortran, on many platforms, instruction-set architectures and operating systems, including Solaris, AIX, FreeBSD, HP-UX, Linux, macOS, and Windows. It consists of a set of compiler directives, library routines, and environment variables that influence run-time behavior.
LLVM is a set of compiler and toolchain technologies that can be used to develop a frontend for any programming language and a backend for any instruction set architecture. LLVM is designed around a language-independent intermediate representation (IR) that serves as a portable, high-level assembly language that can be optimized with a variety of transformations over multiple passes. The name LLVM originally stood for Low Level Virtual Machine, though the project has expanded and the name is no longer officially an initialism.
VisualAge is a family of computer integrated development environments from IBM, which supports multiple programming languages. VisualAge was first released in October 1993 and was discontinued April 30, 2007 and its web page removed in September 2011. VisualAge was also marketed as VisualAge Smalltalk, and in 2005, Instantiations, Inc. acquired the worldwide rights to this product. IBM has stated that XL C/C++ is the followup product to VisualAge.
Interprocedural optimization (IPO) is a collection of compiler techniques used in computer programming to improve performance in programs containing many frequently used functions of small or medium length. IPO differs from other compiler optimizations by analyzing the entire program as opposed to a single function or block of code.
JUCE is an open-source cross-platform C++ application framework, used for the development of desktop and mobile applications. JUCE is used in particular for its GUI and plug-ins libraries. It is dual licensed under the GPLv3 and a commercial license.
Oracle Developer Studio, formerly named Oracle Solaris Studio, Sun Studio, Sun WorkShop, Forte Developer, and SunPro Compilers, is the Oracle Corporation's flagship software development product for the Solaris and Linux operating systems. It includes optimizing C, C++, and Fortran compilers, libraries, and performance analysis and debugging tools, for Solaris on SPARC and x86 platforms, and Linux on x86/x64 platforms, including multi-core systems.
Christopher Arthur Lattner is an American computer scientist and creator of LLVM, the Clang compiler, the Swift programming language and the MLIR compiler infrastructure.
OpenCL is a framework for writing programs that execute across heterogeneous platforms consisting of central processing units (CPUs), graphics processing units (GPUs), digital signal processors (DSPs), field-programmable gate arrays (FPGAs) and other processors or hardware accelerators. OpenCL specifies programming languages for programming these devices and application programming interfaces (APIs) to control the platform and execute programs on the compute devices. OpenCL provides a standard interface for parallel computing using task- and data-based parallelism.
Profile-guided optimization, also known as profile-directed feedback (PDF), and feedback-directed optimization (FDO) is a compiler optimization technique in computer programming that uses profiling to improve program runtime performance.
IBM has offered the computer programming language COBOL on many platforms, starting with the IBM 1400 series and IBM 7000 series, continuing into the industry-dominant IBM System/360 and IBM System/370 mainframe systems, and then through IBM Power Systems (AIX), IBM Z, and x86 (Linux).
XL Fortran is the name of IBM's proprietary optimizing Fortran compiler for IBM-supported environments, including Linux for little-endian distributions and AIX.
ROCm is an Advanced Micro Devices (AMD) software stack for graphics processing unit (GPU) programming. ROCm spans several domains: general-purpose computing on graphics processing units (GPGPU), high performance computing (HPC), heterogeneous computing. It offers several programming models: HIP, OpenMP/Message Passing Interface (MPI), and OpenCL.